花了點時間翻 MySQL Manual,終於搞清楚 MySQL 是把哪個 charset 換成哪個了。和 collation 沒什麼關係,collation 根據 manual 的說法只是拿來判斷文字用的,看來一堆人誤解了 collation 的用途。
MySQL 4.1 以後和 charset 有關的變數有以下幾個:character_set_client, character_set_connection, character_set_database, character_set_results, character_set_server, character_set_system。MySQL 會把收到的 query 當成是 character_set_client ,然後轉換成 character_set_connection;然後 server 這邊是把內容轉成 character_set_result 輸出。這之間的關係如果亂了,資料的內容就會被亂轉來轉去的,最後就看不到我們要的東西。
Read the rest of this entry »