使用上沒有問題
不過要自己將my-small.ini複製一份,並將檔名改成my.ini,才可開始用client端連線
另外要匯入的資料格式須改為UTF8(無BOM)
後來用mysql-5.1.44-win32.msi
雖安裝過程有設定語系為UTF8
但使用中文還是會出現亂碼
參考了網路上的文章:
再谈乱码问题,如何解决MYSQL数据中文乱码问题
http://www.busfly.cn/post/58.html
又一次成功解决Mysql乱码问题
http://www.busfly.cn/post/mysql-utf8.html
於是我下兩道指令,比較5.5與5.1的差異
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
/* 正常 */
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+------------------------------------
| Variable_name | Value
+--------------------------+------------------------------------
| character_set_client | big5
| character_set_connection | big5
| character_set_database | utf8
| character_set_filesystem | binary
| character_set_results | big5
| character_set_server | utf8
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\
+--------------------------+---------
8 rows in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | big5_chinese_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
/* mysql-5.1.44-win32.msi */
/* 中文異常 */
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+------------------------
| Variable_name | Value
+--------------------------+-------------------------
| character_set_client | utf8
| character_set_connection | utf8
| character_set_database | utf8
| character_set_filesystem | binary
| character_set_results | utf8
| character_set_server | utf8
| character_set_system | utf8
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\
+--------------------------+---------
8 rows in set (0.00 sec)
/* 5.1 與 5.5 相異處 */
| character_set_client | big5
| character_set_client | big5
| character_set_connection | big5
| character_set_results | big5
| collation_connection | big5_chinese_ci
| character_set_results | big5
| collation_connection | big5_chinese_ci
於是我在5.1下:
SET CHARACTER_SET_CLIENT=big5;
SET CHARACTER_SET_CONNECTION=big5;
SET CHARACTER_SET_RESULTS=big5;
SET collation_connection=big5_chinese_ci;
SET CHARACTER_SET_CONNECTION=big5;
SET CHARACTER_SET_RESULTS=big5;
SET collation_connection=big5_chinese_ci;
參考了以下文章:
[轉載]MySQL 的 "SET NAMES xxx" 字元編碼問題分析
http://www.vixual.net/blog/archives/310
http://www.vixual.net/blog/archives/310
以上四句指令效果等同於:
SET NAMES big5;
為什麼原本UTF-8會異常,要部份改BIG5才會正常?
我想問題是出在我client端的軟體用的是Windows的DOS
DOS是ANSI或BIG5,她似乎不支援UTF-8
資料輸入路徑:client → connection → server
資料輸出路徑:server → connection → results
connectio是代表什麼?
以上步驟解決了中文亂碼的問題,但每次連線都要再重新SET
而且還有一個問題
就是輸出的表格若是有中文,會多許多空格或空白鍵,導致表格的格線對不齊
於是我又再試另一種方法:
【保証成功】的 mysql 中文亂碼解決方案
http://ria.richtechmedia.com/2005/12/19/%E3%80%90%E4%BF%9D%E8%A8%BC%E6%88%90%E5%8A%9F%E3%80%91%E7%9A%84-mysql-%E4%B8%AD%E6%96%87%E4%BA%82%E7%A2%BC%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%A1%88/
在my.ini加上
[mysqld]
default-character-set=utf8
[client]
default-character-set=big5
// init_connect='SET NAMES utf8' // 好像可不加
去掉
[mysql] //我不知道這是做啥的
default-character-set=utf8
接著重新連線
然後中文對齊的問題就解決了,也不用每次再重新SET
mysql 4.1中文亂碼第二擊
http://ria.richtechmedia.com/2005/08/14/mysql-41%e4%b8%ad%e6%96%87%e4%ba%82%e7%a2%bc%e7%ac%ac%e4%ba%8c%e6%93%8a/
首先,要讓mysql 4.1正確顯示中文最簡單的方法就是全程使用 utf8,從網頁到連線到資料庫等,而my.ini的設定如下:
[mysqld]
default-character-set=utf8
#settings for clients (connection, results, clients)
[mysql]
default-character-set=utf8
其中 [mysqld] 是設定 mysql啟動時要採用的語系,而[mysql]則是通知外來的連線client(例如php頁面或 flash 程式)要使用何種語系設定。
沒有留言:
張貼留言