星期一, 3月 05, 2007

PHP/MySQL + Dreamweaver 編碼設定

1. php.ini

// xampplite 在 \xampplite\apache\bin\php.ini

設定預設字元集:
default_charset = "utf-8"

2. my.cnf

// xampplite 在 \xampplite\mysql\bin\my.cnf

[client]
default-character-set = utf8

[mysqld]
init_connect='SET NAMES utf8'
default-character-set=utf8
default-collation=utf8_general_ci

3. php 連接 MySQL ,

$link = mysql_connect($host,$user,$passwd) or die ("Fail");
$db = mysql_select_db($DBname, $link) or die ("Fail");

在取出資料前, 加入以下3行
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8");

4. 在php檔中, 如使用htmlentities和htmlspecialchars時, 必須加入:

$chars = htmlentities($chars, ENT_QUOTES, "UTF-8");
$chars = htmlspecialchars($chars, ENT_QUOTES, "UTF-8");

在顯示之前用:
$chars = html_entity_decode($chars, ENT_QUOTES, "UTF8");

若用過addslashes()或mysql_real_escape_string()要先加上:
$chars = stripslashes($chars);

如有需要可以用 iconv 將不同編碼轉換:
$chars = iconv('Big5', 'UTF-8', $chars); //由Big5轉為UTF-8



5. Dreamweaver 的網頁"編碼方式"必須設定為: Unicode(UTF-8)

功能表 -> 修改 -> 頁面屬性 -> 標題/編碼方式



功能表 -> 偏好設定 ->新文件 -> 預設編碼...

一般html檔案可加入以下:
<meta equiv="Content-Type" content="text/html; charset=UTF-8">

沒有留言: