避免MySQL發生亂碼
 
聯絡我們
會員登錄
購物車


首頁 書籤 最新訊息 其他
IT辭典 IT技術動向 IT和經營結合 系統導入 系統基盤建置 系統營運管理
張士超
東京工業大學經營工學科畢。現任IT綜合情報網編輯。

避免MySQL發生亂碼

為避免將資料庫MySQL的內容呈現到網頁時會出現亂碼的情形,可以利用以下的方式檢查以及更改MySQL內的文字碼設定(Character Set)。


檢查MySQL內的文字碼設定

在MySQL的環境下輸入以下的MySQL指令,查看目前的文字碼設定(Character Set)狀態。可以得知各文字碼的預設值為「lanten1」。

mysql> show variables like 'character_set%';
或
mysql> status;

製作新的資料庫時,可以利用以下的MySQL指令,設定以及確認資料庫的預設文字碼。例如"MyDB"的資料庫的預設文字碼設定為「UTF-8」的萬用碼。

mysql> create databaase MyDB default character set utf8;
mysql> show create database MyDB;

編輯/etc/my.cnf檔

編輯/etc/my.cnf檔內的文字碼設定(Character Set)後,加以保存。例如:文字碼設定為「UTF-8」的萬用碼。

[client]
default-character-set=utf8

[mysqld]
default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

設定檔內加入「skip-character-set-client-handshake」是為了抑制MySQL內部自行進行變換。


手動重新啟動MySQL

設定完成後,利用手動停止和開啟MySQL的服務。

手動停止服務
# /usr/local/mysql/bin/mysqladmin shutdown 

手動開啟服務
# /usr/local/mysql/bin/mysqld_safe --user=mysql &

最後確認設定的結果,若所設定的文字碼皆變為「UTF-8」萬用碼,表示設定完成。

mysql> show variables like 'character_set%';
或
mysql> status;


top