国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL5 數據庫中文亂碼問題的解決方法

2024-07-24 12:39:35
字體:
來源:轉載
供稿:網友

由于Mysql是從版本 4遷移到Version 5的,原來的字符集是latin1,現在是UTF8,這就遇到了經典的亂碼問題,即使通過phpadmin來訪問,也是一片紛亂,還好在前端的展現正常.

在網上搜一下,很多帖子和方法,最后我通過如下步驟,終于糾正了多年來的亂碼問題,首先亂碼是由于字符集的變化和混亂造成的.

  1. [root@localhost plugins]# /mysql -hlocalhost -ueygle -p eygle 
  2. Enter password:  --Vevb.com 
  3. Reading table information for completion of table and column names 
  4. You can turn off this feature to get a quicker startup with -A 
  5. Welcome to the MySQL monitor.  Commands end with ; or \g. 
  6. Your MySQL connection id is 1693469 
  7. Server version: 5.0.45 Source distribution 
  8. type ’help;’ or ’\h’ for help. Type ’\c’ to clear the buffer. 
  9. mysql> show variables like ’%char%’; 
  10. +————————–+———————————-+ 
  11. | Variable_name            | Value                            | 
  12. +————————–+———————————-+ 
  13. | character_set_client     | latin1                           | 
  14. | character_set_connection | latin1                           | 
  15. | character_set_database   | latin1                           | 
  16. | character_set_filesystem | binary                           | 
  17. | character_set_results    | latin1                           | 
  18. | character_set_server     | latin1                           | 
  19. | character_set_system     | utf8                             | 
  20. | character_sets_dir       | /opt/mysql/share/mysql/charsets/ | 
  21. +————————–+———————————-+ 
  22. rows in set (0.00 sec) 

現在的字符集是utf8,但是由于原來是latin1的字符集,我使用latin1進行導出:

mysqldump -hlocalhost -ueygle -p –default-character-set=latin1 blog >blog.sql

這樣導出之后,如果打開看,正文應當都是正常顯示才對,然后更改字符集,將所有表的字符集設置改為utf8,在vim中的命令是:

:%s/latin1/utf8/g

再執(zhí)行導入操作:mysql -hlocalhost -ueygle -p eyglenew < blog.sql

這樣我終于看到了久違的,正確的中文,現在的數據庫字符集看起來是這個樣子的:

  1. mysql> show variables like ’%char%’; 
  2. +————————–+———————————-+ 
  3. | Variable_name            | Value                            | 
  4. +————————–+———————————-+ 
  5. | character_set_client     | latin1                           | 
  6. | character_set_connection | latin1                           | 
  7. | character_set_database   | utf8                             | 
  8. | character_set_filesystem | binary                           | 
  9. | character_set_results    | latin1                           | 
  10. | character_set_server     | latin1                           | 
  11. | character_set_system     | utf8                             | 
  12. | character_sets_dir       | /opt/mysql/share/mysql/charsets/ | 
  13. +————————–+———————————-+ 
  14. rows in set (0.00 sec) 

記錄一下,供遇到此類情況的朋友參考,如果是數據庫沒有亂碼而程序查詢是亂碼了,我們可以如下來解決,只好查資料,發(fā)現了一個解決方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的數據庫消除亂碼,對于GBK的數據庫則使用SET NAMES GBK,代碼如下:

$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);

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這兩個版本中有效.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 寿宁县| 伊宁县| 安陆市| 承德市| 垫江县| 陇西县| 田林县| 新竹县| 丹寨县| 庆城县| 若尔盖县| 鄂尔多斯市| 若尔盖县| 崇州市| 长葛市| 定陶县| 泗洪县| 出国| 菏泽市| 子长县| 浦江县| 久治县| 黑龙江省| 潮安县| 叙永县| 锡林郭勒盟| 永兴县| 鹤庆县| 天津市| 天镇县| 左贡县| 正安县| 利川市| 龙南县| 汾西县| 宁化县| 文昌市| 城步| 汽车| 塔城市| 德格县|