程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL 亂碼解決的兩大方案介紹

MySQL 亂碼解決的兩大方案介紹

編輯:MySQL綜合教程

對正確解決JSP中的亂碼問題解決tomcat下中文亂碼問題 )中我們也對MySQL亂碼問題進行了詳細說明,相信你看完之後會對JSP裡的一些亂碼問題有所解決,不過還是有些人的MySQL亂碼問題沒有得到解決。

包括我自己,所以又找了一些資料,希望這次能完全解決MySQL數據庫的亂碼問題。
 

MySQL 亂碼解決方案的第一種方法,很精辟的總結:

經常更換虛擬主機,而各個服務商的MySQL版本不同,當導入數據後,總會出現亂碼等無法正常顯示的問題,查了好多資料,總結出自己的一點技巧:

WINDOWS 下導入應該這樣

使用MySQL的命令

在DOS命令下進入MySQL的bin目錄下,輸入MySQL -uroot -p密碼 數據庫名稱<要恢復的數據庫, 例如我們要把D盤的一個名稱為test.sql的數據庫恢復到本地的test2這個數據庫,那麼就這樣:

MySQL -uroot -p密碼 test2以前的國外主機用的MySQL是4.x系列的,感覺還比較好,都無論GBK和UTF-8都沒有亂碼,沒想到新的主機的MySQL是5.0版本的,導入數據後,用Php讀出來全是問號,亂碼一片,記得我以前也曾經有過一次切換出現亂碼的經驗,原因肯定是MySQL版本之間的差異問題。

只好查資料,發現了一個解決方法,就是在MySQL_connect後面加一句SET NAMES UTF8,即可使得UTF8的數據庫消除亂碼,對於GBK的數據庫則使用SET NAMES GBK,代碼如下:

  1. $ mysql _mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);   
  2. mysql_query("SET NAMES 'GBK'"); 

數據庫字符集為utf-8

連接語句用這個

  1. mysql_query("SET NAMES 'UTF8'");   
  2. mysql_query("SET CHARACTER SET UTF8");   
  3. mysql_query("SET CHARACTER_SET_RESULTS=UTF8'"); 

還有個方法就是,如果你自己的機器的話,可以更改MYSQL字符集,一般在MYSQ4和MYSQL5這兩個版本中有效

mysql 亂碼解決方案的第二個方法:很不錯的解說,可以試一下

mysql亂碼處理總結:

(1)java中處理中文字符正常,在cmd client中顯示亂碼是字符集的問題.

(2)字段長度設置夠長,但插入中文字符時提示com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column錯誤是字符集的問題.

(3)亂碼問題歸根到底是字符集的問題,那就從字符集設置方面考慮,不外乎下面幾個方面:server,client,database,connection,results.

解決辦法:

(1)修改 my.ini(MySQL Server Instance Configuration 文件)

  1. # CLIENT SECTION  
  2. [client]  
  3. port=3306 
  4. [mysql]  
  5. default-character-set=gbk 
  6. # SERVER SECTION  
  7. [mysqld]  
  8. default-character-set=gbk   

(2)修改data目錄中相應數據庫目錄下的db.opt配置文件

  1. default-character-set=gbk 
  2. default-collation=gbk_chinese_ci 

(3)數據庫連接串中指定字符集

URL=jdbc:mysql://yourIP/college?user=root&password=yourPassword&useUnicode=true&characterEncoding=gbk

注:在mysql4.1.0版 要加useUnicode=true&characterEncoding=gbk 如果是5.0版以上的,加不加都是沒有關系的!

(4)在創建數據庫時指定字符集

  1. create database yourDB CHARACTER SET gbk; 

(5)在dos命令上要設置

  1. set names gbk 

好了,經過檢查上面四個方面的設置,應該 OK 了!不會出現諸如com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column等問題.

以上的相關內容就是對mysql 亂碼解決方案的介紹,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved