mysql的亂碼解決

mysql 支持幾十種編碼方式,並且默認的編碼latinl對中文支持不太好,gb2312是針對中午的編碼方式,每個漢字佔2個字節,解析比較簡單,但是僅能編碼 中文字符,中文網站往往採用gb2312,,如baidu,gbk類似於gb2312,但是比gb2312編碼更多的中文以及中文字符,uft-8能夠編碼目前爲止任意的語言,國際化的網站採用utf-8


1從控制檯修改編碼

            mysql->alter database nj character set utf8;

              查看當前數據庫編碼的方式斷的命令:show variables like 'character_set_database';

2從配置文件修改編碼

          用記事本打開mysql目錄下的my.ini文件(c:\program files\mysql\mysql server 5.0\my.ini)找到下面一句話:

            default-character-set=latinl

            應該有這行代碼,將編碼方式latinl都改爲utf8即可

3url中指定編碼方式

              另外,還需要指定jdbc連接的編碼方式,方法是修改鏈接url

            Connection conn=DriverManager.getConnerction("jdbc:mysql://localhost:3306/nj?unicode=true&characterEncoding=utf-8",'root','admin');

做完上述設定之後,一般就沒有亂碼了,如果還有亂碼,檢查是否對request進行了編碼,如果沒有,從request取到的字符串也會亂碼,注意jsp頁面編碼,

request編碼,response編碼,數據庫編碼必須一致

Tomcat的server.xml中也要修改,爲get方式獲取數據添加urlEncoding參數,指定utf-8編碼,默認爲ISO-8859-1

<Connector port="8080" protocol="http/1.1"

                       connectionTimeout="20000"

                     redirectPort="8443" urlEncoding="utf-8"/>

發佈了88 篇原創文章 · 獲贊 2 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章