IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當前所在位置:首頁數(shù)據(jù)庫MYSQL → 解決PHP存取MySQL 4.1亂碼問題

解決PHP存取MySQL 4.1亂碼問題

時間:2015/6/28來源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評論(0)

    從mysql 4.1開始引入的多語言支持確實很棒,而且一些特性已經(jīng)超過了其他的數(shù)據(jù)庫系統(tǒng)。不過我在測試過程中發(fā)現(xiàn)使用適用于MySQL 4.1之前的php語句操作MySQL數(shù)據(jù)庫會造成亂碼,即使是設置過了表字符集也是如此。我讀了一下新的MySQL在線手冊中第十章"Character Set Support"后終于找到了解決方法并測試通過。

    MySQL 4.1的字符集支持(Character Set Support)有兩個方面:字符集(Character set)和排序方式(Collation)。對于字符集的支持細化到四個層次: 服務器(server),數(shù)據(jù)庫(database),數(shù)據(jù)表(table)和連接(connection)。

    查看系統(tǒng)的字符集和排序方式的設定可以通過下面的兩條命令:

mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)

 

mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)


    上面列出的值就是系統(tǒng)的默認值。(很奇怪系統(tǒng)怎么默認是latin1的瑞典語排序方式)...

 

    當我們按照原來的方式通過PHP存取MySQL數(shù)據(jù)庫時,就算設置了表的默認字符集為utf8并且通過UTF-8編碼發(fā)送查詢,你會發(fā)現(xiàn)存入數(shù)據(jù)庫的仍然是亂碼。問題就出在這個connection連接層上。解決方法是在發(fā)送查詢前執(zhí)行一下下面這句:

SET NAMES 'utf8';

    它相當于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

    再試試看,正常了吧?^_^ Enjoy!

關鍵詞標簽:問題,解決,latin1,MyS

相關閱讀

文章評論
發(fā)表評論

熱門文章 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦MySQL常用維護管理工具MySQL常用維護管理工具Linux VPS/服務器上輕松導入、導出MySQL數(shù)據(jù)Linux VPS/服務器上輕松導入、導出MySQL數(shù)據(jù)MySQL復制的概述、安裝、故障、技巧、工具MySQL復制的概述、安裝、故障、技巧、工具

相關下載

人氣排行 MySQL數(shù)據(jù)庫啟動失敗1067進程意外終止的解決辦法總結(jié)10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦Mysql 1045錯誤解決辦法MySQL服務器進程CPU占用100%解決辦法MySQL導出導入命令的用例MySQL無法啟動、無法停止各種解決方法總結(jié)三種常用的MySQL建表語句Mysql清空表的實現(xiàn)方法