數據庫情況。
MySQL 版本:5.0.26
MySQL 默認字符集:latin1
論壇數據庫字符集:latin1
phpMyAdmin 版本:2.9.0.2
使用 phpMyAdmin 打開我的數據庫後,發現數據表裏的中文全是全是亂碼,不管如何改變 phpMyAdmin 所使用的語言都無濟於事。
仔細研究一下,發現 phpMyAdmin 默認顯示的網頁編碼是 Unicode UTF-8 ,查看當前 IE 瀏覽器所使用的編碼也就是 Unicode (UTF-8)。
所以我想讓頁面編碼變爲 GB2312,當然啦,強行指定 IE 使用的字符集是不行的。目的是要讓 phpMyAdmin 吐出 GB2312 編碼。
下面是我的修改過程:
打開 phpMyAdmin 根目錄中 libraries/select_lang.lib.php 文件;
找到:
CODE:
'zh-gb2312' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh', '中文'),
CODE:
'zh-gb2312-utf-8' => array('zh|chinese simplified-UTF8', 'chinese_simplified-gb2312', 'zh', '中文'),
CODE:
'gb2312' => 'gb2312',
CODE:
'gb2312' => 'latin1',
然後從瀏覽器打開 phpMyAdmin ,在首頁選擇 Language 爲:中文-Chinese simplified-UTF8
然後打開數據表看看裏面的中文是不是已經可以正常顯示了
注意:我數據庫的字符集是 latin1 ,如果你的數據庫字符集不是 latin1,那要酌情改動一下修改過程。'gb2312' => 'your_character_code',
剛纔在導入數據的時候,navicat報錯:
Data too long for column ‘ip’ at row 1
提示數據對於ip字段太長
如果數據類型不正確,也會出錯,而不像4.*那樣自動轉換:
sendQuery:Incorrect datetime value: ‘未知’ for column ‘date’ at row 1
如果是數據x (int 11)類型的可能有些奇怪:
insert into a (x) values (’a')
出現:
Out of range value adjusted for column ‘x’ at row 1
insert into a (x) values (’11a’)
出現:
Data truncated for column ‘x’ at row 1
解決辦法:
在my.ini裏找到
sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION”
把其中的
STRICT_TRANS_TABLES,
去掉,然後重啓mysql就ok了