MySQL中文亂碼解決方案集錦

2021-06-03 20:15:15 字數 1591 閱讀 1055

整理一些mysql中文亂碼解決方案,比較實用。

在使用mysql時,插入中文字元,經常會出現亂碼,中文全被用?代替。

出現這種情況的原因,多是字符集不匹配造成的。

在mysql中,如果使用預設的字符集,在建庫、建表時,預設使用的是latin1字符集,為iso 8859-1西歐字符集。

插入中文字元時,與之不匹配,就會出現亂碼。

本人使用的是mysql 5.0版,並用c#操作mysql資料庫,當插入中文字元時,發現顯示的是亂碼。

初步估計是字符集沒有配對。查詢後,發現msyql預設使用的是latin1,因此將資料庫的配置檔案中的字元設定改為utf8,並在c#中將中文字元,轉為utf8,插入後,仍為亂碼。

mysql也支援gb2312,又將mysql的字元設定改為gb2312,c#中使用default,重起mysql後,操作仍然無效。

後想起,雖然將mysql的字符集設定為gb2312或utf8,但已經建立的資料庫和表,仍採用的是預設的字符集,也即仍為當初的西歐字符集,最好,只得忍痛將資料庫刪除,重新以gb2312字符集建立資料庫和表。

再用c#插入中文字元後,一切ok。

再安裝好mysql後,可以手工或使用配置工具,將my.ini檔案中的預設字符集改為gb2312,再重新建庫和表時,不用再在語句中指定字符集,其預設設定也即為gb2312,可以正常顯示中文字符集。

1.建立資料庫是一般的語句: create database dbname;

2.在庫中建表時語句為: create table tbname(..........)engine=myisam character set gbk collate gbk_chinese_ci;

3.程式中連線資料庫的connection物件需要寫成connection con = drivermanaager.getconnection("jdbc:mysql://...user=..&password=...&useunicode=true&characterencoding=gbk");

4.若在終端下用mysql命令向資料庫插入資料,則在進入mysql時的命令寫成:#mysql --default-character-set=gbk -u ... -p

5.在jsp頁面的編碼設定為utf-8.

我找到乙個方法好像可以解決這個問題了

在安裝mysql server的時候,無論是選擇gb2312還是utf-8,都沒有關係,這些字符集在phpmyadmin中都可以很好的工作,主要是自己的指令碼要正確的顯示中文,可以在php指令碼中,連線資料庫之後,正式的資料查詢提交之前執行下面的語句:

$setcharactersetsql = "set names '自己使用的字符集'";

$recordset1 = mysql_query($setcharactersetsql, $conn_resource) or die(mysql_error());

然後再執行自己的查詢語句,得到的結果就是正確的了。剛剛試了gb2312和utf-8,都沒有問題。

ryandoc資料字典 for sqlserver版ryancoder**生成器 for sqlserver版

MYSQL中文亂碼解決方案

mysql資料庫存在著編碼問題,主要體現在資料庫裡漢字會出現亂碼,web頁面漢字顯示不正常。歸結起來只有乙個原因 會出現編碼的地方存在編碼不一致。web開發中 mysql編碼主要會出現在五個地方 1.mysql安裝的預設編碼 latin1 在mysql.ini mysql安裝根目錄下 中設定。mys...

中文亂碼解決方案

前言 亂碼問題,一直使我們頭疼的問題。今天自己有空好好研究一番。不求太深入,只求只知皮毛。考慮不夠全面,只求給您一點幫助足矣。一 簡單介紹下pageencoding與contenttype的區別 摘自網上 pageencoding 設定jsp原始檔和響應正文中的字符集編碼。contenttype 設...

Mysql中文亂碼最佳解決方案

mysql中文亂碼最佳解決方案 mysql資料庫是乙個開源的資料庫,應用非常廣泛,很多的網際網路公司都在使用它,有的還定製通過修改其源 進行定製開發,那在使用mysql的過程中,也發現了比較多的問題,那最明顯的就是mysql的中文亂碼問題,下面就來說說mysql的中文亂碼的最佳解決方案,另外我們在使...