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

Mysql亂碼終極解決方案

編輯:MySQL綜合教程


Mysql亂碼終極解決方案    最近在Linux自帶的Mysql數據庫中執行了一個sql文件,在數據庫中查詢沒有任何問題,可以看到中文數據,但是在JSP頁面中顯示時卻出現了亂碼,在spring的配置數據庫的連接URL中,指定了編碼“characterEncoding=UTF-8”,而且浏覽器也是UTF-8的編碼,為什麼就會是亂碼呢。最後得出結論,原來是Linux自帶的數據庫並不是UTF-8的編碼,整理後,得到以下幾種解決方案:   第一解決方法:    亂碼問題簡單說就是數據庫寫入讀取,網頁文件,網頁顯示時幾個環節的編碼不一致造成的。   www.2cto.com   亂碼問題 寫入時:頁面提取寫入數據編碼和寫入數據庫時編碼不一致 讀取時:讀取後所用編碼與數據庫寫入時不一致 顯示時:編碼與數據庫讀取後的數據不一致   很顯然只有三者都統一才行:(以utf-8為例)
  1:頁面提交數據編碼utf-8(這也可以算是顯示頁面編碼), 2:數據庫寫入時編碼:alter database db default character set ‘utf8’collate ‘utf8-general-ci’, 3:數據庫讀取時所用編碼:mysql_query(“set names ‘utf8’”); 4:顯示頁面編碼:<meta http-equiv="Content-type"content=“text/html, charset=utf-8”>   第二解決方法:    進入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   www.2cto.com     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 ;   www.2cto.com   4 檢查表結構中   varchar(100) 的整理屬性為gbk_chinese_ci   其它類型的整理屬性為空   5 代碼中加上     $db->query("SET CHARACTER SET GBK");  Linux下需要,Windows下不需要
    這個相當於Connection Character Sets and Collations
 

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