當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資料都可以透過這個方式來結合
希望這能給大家當作一點參考,而如果有興趣的話也可以實地測試看看