mysql資料亂碼問題原因及解決(總結篇)

2021-05-04 21:32:47 字數 1293 閱讀 8190

mysql資料亂碼問題原因及解決(總結篇)

第一解決方法:

亂碼問題簡單說就是資料庫寫入讀取,網頁檔案,網頁顯示時幾個環節的編碼不一致造成的。

亂碼問題

寫入時:頁面提取寫入資料編碼和寫入資料庫時編碼不一致

讀取時:讀取後所用編碼與資料庫寫入時不一致

顯示時:編碼與資料庫讀取後的資料不一致

很顯然只有三者都統一才行:(以utf-8為例)

1:頁面提交資料編碼utf-8(這也可以算是顯示頁面編碼),

2:資料庫寫入時編碼:alter database db default character set 『utf8』collate 『utf8-general-ci』,

3:資料庫讀取時所用編碼:mysql_query(「set names 『utf8』」);

4:顯示頁面編碼:

第二解決方法:

進入mysql命令列:

mysql> alter database you_dbname default character set 'utf8';

mysql> set character_set_client='utf8';

mysql> set character_set_connection='utf8'

mysql> set character_set_results='utf8'

第三解決方法:

(暫時只針對mysql 5.0.16 亂碼問題處理辦法,其他版本未測試。)

1 設定phpmyadmin

language:chinese simplified (zh-utf-8)

mysql 字符集:utf-8 unicode (utf8)

mysql 連線校對:gbk_chinese_ci

2 建立資料庫時

整理設定成 gbk_chinese_ci

3 用sql建立表中

engine=myisam default charset=gbk;

engine=innodb default charset=gbk auto_increment=40 ;

4 檢查表結構中

varchar(100) 的整理屬性為gbk_chinese_ci

其它型別的整理屬性為空

5 **中加上

$db->query("set character set gbk");  linux下需要,windows下不需要

這個相當於connection character sets and collations

以上是個人從網上搜尋的一些總結和歸納,相信這個應該能解決所有亂碼的問題了。

亂碼問題本質原因

當中文被讀取成無法識別的字元時被稱為亂碼 檔案在儲存時是有編碼格式的,只有當儲存時使用的編碼格式與讀取時使用的編碼格式相同時才能正確讀取檔案 例如utf 8編碼 gbk編碼都可以讀取中文,那麼如果採用utf 8編碼儲存檔案,但是採用gbk編碼讀取檔案就會造成亂碼,因此utf 8編碼儲存的檔案應該使用...

load data inpath出錯原因及解決方法

hive load data inpath hdfs into table person1 failed semanticexception error 10028 line 1 17 path is not legal hdfs move from hdfs to hdfs is not vali...

連線遠端mysql資料庫失敗常見原因及解決辦法

解決辦法 在mysql資料庫的user表中新建一條資料,設定user username 和host 開放訪問mysql的ip 例如123.118.17.201 以及登入密碼。這樣就設定了允許訪問的使用者名稱和ip位址 若想所有ip都可以訪問,則可將host設定為 但是這樣很危險,不建議 新建方式如下...