亂碼產生原因:
mysql 字元編碼是版本4.1引入的,支援多國語言,而且一些特性已經超過了其它大多數資料庫管理系統。正因為這一特性才導致 mysql 的亂碼問題。
字符集是一套符號和編碼。校對規則是在字符集內用於比較字元的一套規則。
檢視系統的字符集用下面的命令:show variables like 'character_set_%';
mysql 4.1.x開始支援以下這些事情
l 使用多種字符集(character set)來儲存字元
l 使用多種校對規則(collation)來比較字串
l 在同一臺伺服器、同乙個資料庫或甚至在同乙個表中使用不同字符集或校對規則來混合字串
l 允許定義任何級別的字符集和校對規則
mysql 4.1及以上版本的字符集支援(character set support)有兩個方面:字符集(character set)和校對規則(collation)。 字符集和校對規則有4個級別的預設設定:伺服器(server),資料庫(database),資料表(table)和連線(connection)。
mysql 中是根據下面幾個變數確定伺服器端和客戶端用的什麼字符集:
character_set_client 客戶端字符集
character_set_connection 客戶端與伺服器端連線採用的字符集
character_set_results select查詢返回資料的字符集
character_set_database 資料庫採用的字符集
1、用 set 語法來指定,不加 "global" 的話就只對本次會話有效。
set [global] character_set_client = utf8;
set [global] character_set_connection = utf8;
set [global] character_set_database = utf8;
set [global] character_set_results = utf8;
set [global] character_set_server = utf8;
2、直接修改 my.cnf,[client]和[mysqld]下面各增加一行內容,然後重啟 mysql,全域性生效。
default-character-set = utf8
修改my.ini裡的default-character-set=utf8
mysql命令列上輸入 set names 'gbk' 命令等同於:
set character_set_client = gbk;
set character_set_connection = gbk;
set character_set_results = gbk;
因為character_set_client ,character_set_connection 這兩個變數僅用於保證與 character_set_database 編碼的一致,而 character_set_results 則用於保證 select 返回的結果與程式的編碼一致。
你的資料庫(character_set_database)用的是 utf8 的字符集,那麼你就要保證 character_set_client ,character_set_connection 也是utf8的字符集。
Mysql中文亂碼解決
mysql插入中文亂碼 我們在安裝mysq的時候就制訂了mysql編碼為utf 8,如果想解決亂碼,最簡單的乙個方法就是制定mysql編碼為gb2312 我們通過客戶端提交資料的時候,輸入法是採用gb2312對輸入的中文資料進行編碼,並將它們存入資料庫,但是我們 已經指定了mysq客戶端的編碼是ut...
mysql中文亂碼解決
在windows上安裝了wamp環境。通過phpadmin建立了的表,字串編碼設定成utf8,在phpadmin中新增和查詢資料中文顯示都正常,但在自己寫的php網頁查詢顯示中文亂碼。網上搜尋有的文章基本都說在my.ini的 client mysql mysqld 都新增default charac...
MySQL 解決中文亂碼
前言 開啟mysql後台插入中文字元出現警告,或者查詢語句出現下面?正文如下 1.開啟控制台,輸入 show global variables like basedir 其中 value 的值就是你存放my.ini 的值 2.檢視value的目錄下是否有my.ini,如果沒有複製my default...