1 頁 (共 1 頁)

[分享]MySQL與程式腳本間資料傳輸的編碼關係與調整

文章發表於 : 2008-07-12 10:28 pm
涅魂
MySQL中有許多預設變數,其中character_set_client, character_set_connection, character_set_result扮演著控制資料庫與程式之間檔案傳輸的字元編碼

當MySQL從程式取得一串Query時,MySQL會將這串Query的編碼視為character_set_client的值,並將其編碼轉為character_set_connection所指定的編碼

而MySQL傳送資料到程式時MySQL會將傳出資料的編碼轉為character_set_result的編碼後再送出

因此,若今天有一個big5的資料庫要與utf8編碼的程式互動,則這三個預設變數可以如下設定
代碼: 選擇全部
SET CHARACTER_SET_CLIENT=utf8;
SET CHARACTER_SET_CONNECTION=big5;
SET CHARACTER_SET_RESULTS=utf8;

如此一來,MySQL會將來自程式的Query視為UTF8編碼並轉碼成big5,而送資料時則會先將資料編碼轉成UTF8後才會送出

所以說,透過這三個變數可以用來整合不同charset的資料庫與程式,如果運用得當的話不管您是使用utf8還是big5或gbk的wog主程式、SQL資料都可以透過這個方式來結合

希望這能給大家當作一點參考,而如果有興趣的話也可以實地測試看看 :wink:

文章發表於 : 2008-07-13 10:20 am
黑咪
太棒了
就算是UTF8版本的管理台也可以用在BIG5版本WOG上
不過就是查看CHAT記錄時會亂碼~.~

文章發表於 : 2008-07-13 11:25 am
涅魂
有試過把log文件轉成utf8看看嗎?

文章發表於 : 2008-07-13 1:47 pm
黑咪
@_@是啊
把CHAT也轉成UTF8來用看看@V@

成功了...謝謝

不過用了一會兒覺得怪怪的
也就還原成big5版了