close
相信這是初學者最常遇到的問題吧!!
往往在自己電腦裡執行都正常(假設使用者電腦的Mysql版本是4.x或以下版本)
傳上server後卻都是亂碼(假設server上的Mysql版本是5.x)
我第一次遇上時也是摸不著頭緒
還是我的老朋友google幫了我
有個觀念一定要先搞清楚
亂碼問題一定跟編碼有關
用什麼編碼存進資料庫,就用什麼編碼秀出來
好了
有了這觀念
問題就好解決多了
在使用者層面來說
可以先檢查網頁的charset
如果網頁的charset是utf-8
那麼post的資料就都是utf-8的編碼
如果不想更改charset又想使post出去的資料是自己想要的編碼
可以使用iconv來轉換
ex:iconv('原始編碼','欲轉換的編碼','欲轉換的字串')
再來伺服器層面
開啟phpmyadmin檢查Mysql系統變數
如果您並無管理者權限
無法更動Mysql的系統變數值
那麼php在連結mysql時可加入以下語法
mysql_query("SET NAMES 'big5'");
mysql_query("SET CHARACTER SET big5");
mysql_query("SET CHARACTER_SET_RESULTS=big5'");
big5可任意更換成您要的編碼語系
以確保抓出來或存進去的資料為你要的
關於這方面的觀念我搞了好久才稍微有個頭緒
如以上所說有誤
歡迎指正^^
往往在自己電腦裡執行都正常(假設使用者電腦的Mysql版本是4.x或以下版本)
傳上server後卻都是亂碼(假設server上的Mysql版本是5.x)
我第一次遇上時也是摸不著頭緒
還是我的老朋友google幫了我
有個觀念一定要先搞清楚
亂碼問題一定跟編碼有關
用什麼編碼存進資料庫,就用什麼編碼秀出來
好了
有了這觀念
問題就好解決多了
在使用者層面來說
可以先檢查網頁的charset
如果網頁的charset是utf-8
那麼post的資料就都是utf-8的編碼
如果不想更改charset又想使post出去的資料是自己想要的編碼
可以使用iconv來轉換
ex:iconv('原始編碼','欲轉換的編碼','欲轉換的字串')
再來伺服器層面
開啟phpmyadmin檢查Mysql系統變數
如果您並無管理者權限
無法更動Mysql的系統變數值
那麼php在連結mysql時可加入以下語法
mysql_query("SET NAMES 'big5'");
mysql_query("SET CHARACTER SET big5");
mysql_query("SET CHARACTER_SET_RESULTS=big5'");
big5可任意更換成您要的編碼語系
以確保抓出來或存進去的資料為你要的
關於這方面的觀念我搞了好久才稍微有個頭緒
如以上所說有誤
歡迎指正^^
全站熱搜
留言列表