剛剛架好了一個新的環境,用的是 MySQL 4.1.22
並在 complie 時加入了 WITH_CHARSET=utf8 WITH_XCHARSET=all
以下是用 phpmyadmin 查出來的 MySQL 環境變數
[新 MySQL 4.1.22]
character set client utf8
character set connection utf8
character set database utf8
character set results utf8
character set server utf8
character set system utf8
collation connection utf8_unicode_ci
(整體值) utf8_general_ci
collation database utf8_general_ci
collation server utf8_general_ci
[舊 MySQL 4.1.19]
character set client latin1
(整體值) utf8
character set connection utf8
character set database utf8
character set results latin1
(整體值) utf8
character set server utf8
character set system utf8
collation connection utf8_unicode_ci
(整體值) utf8_general_ci
collation database utf8_general_ci
collation server utf8_general_ci
新的 MySQL 4.1.22 在查詢上是沒問題的(不論是 phpmyadmin 或我自己的程式)
先前舊 MySQL 4.1.19 的 my.cnf 裡新增 default-character-set=utf8
然後在 select * from table where name like 'a%' 後加上 COLLATE utf8_bin
即可在 phpmyadmin 上得到正確的結果,但卻失去了 like 不分大小寫的功能
另外在我自己的程式裡加上這句卻會 error 這方面我就不知道是何原因了..
我想問題就出在 character set client 與 character set results 這兩個
character set results 設到 my.cnf 裡會讓我的 mysql 啓動不能
character set client 設 utf8 會讓用到中文的 SQL 句統統不正常
回傳的資料有中文也都是亂碼
看來我還是做升級搬家會比較好一點 Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.24.124