之前在做財金系網頁的時候,遇到新舊編碼問題,舊版的網頁是使用 BIG5 的中文編碼,但是會有 "功蓋許" 的問題。新版的財金系網頁依照原本攝影社的程式架構,逐一將編碼轉換成 utf8。
那時候找了很多解決方法,有的建議用 PHP 裡的 iconv 函數轉換輸出,但覺得很沒有效率,而且 utf8 在那時候也慢慢是一個標準編碼趨勢,所以決定來大改版。
PHP 部份
首先先下載 Notepad++
這樣就可以輕鬆轉換。
網頁的 meta 也要記得宣告
MySQL 部份
有兩個方法
首先就是將資料庫裡面的資料都轉換成 utf8
改 my.ini 在 [mysqld] 加入三行
如果不能改 my.ini
可以用 PHP 函數指令來變更
在每次與資料庫連結後加入
這樣就OK了!
使用utf8的好處多多,最直接就是 "功蓋許" 的問題解決了。再來就是站內搜尋的問題。所以改成 utf8吧!
那時候找了很多解決方法,有的建議用 PHP 裡的 iconv 函數轉換輸出,但覺得很沒有效率,而且 utf8 在那時候也慢慢是一個標準編碼趨勢,所以決定來大改版。
PHP 部份
首先先下載 Notepad++
- 開啟要轉換的文件,動作:全選、複製
- 動作:格式 > 編譯成ANSI碼 > 打勾 "編譯成UTF-8碼(檔首無BOM)"
- 動作:全選、貼上
- 儲存
這樣就可以輕鬆轉換。
網頁的 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吧!
留言
張貼留言