2007年8月1日 星期三

big5 轉換 utf8

之前在做財金系網頁的時候,遇到新舊編碼問題,舊版的網頁是使用 BIG5 的中文編碼,但是會有 "功蓋許" 的問題。新版的財金系網頁依照原本攝影社的程式架構,逐一將編碼轉換成 utf8。

那時候找了很多解決方法,有的建議用 PHP 裡的 iconv 函數轉換輸出,但覺得很沒有效率,而且 utf8 在那時候也慢慢是一個標準編碼趨勢,所以決定來大改版。

PHP 部份

首先先下載 Notepad++
  1. 開啟要轉換的文件,動作:全選、複製
  2. 動作:格式 > 編譯成ANSI碼 > 打勾 "編譯成UTF-8碼(檔首無BOM)"
  3. 動作:全選、貼上
  4. 儲存

這樣就可以輕鬆轉換。

網頁的 meta 也要記得宣告
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Language" Content="UTF-8" />

MySQL 部份
有兩個方法

首先就是將資料庫裡面的資料都轉換成 utf8
mysql> ALTER DATABASE forum DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

mysql> ALTER TABLE forum_table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;


改 my.ini 在 [mysqld] 加入三行
init_connect='SET NAMES utf8'
default-character-set=utf8
default-collation=utf8_general_ci


如果不能改 my.ini
可以用 PHP 函數指令來變更
在每次與資料庫連結後加入
mysql_query("SET NAMES 'utf8'");


這樣就OK了!

使用utf8的好處多多,最直接就是 "功蓋許" 的問題解決了。再來就是站內搜尋的問題。所以改成 utf8吧!

沒有留言 :

張貼留言