一本一本久久a久久精品牛牛影视 一本一本久久a久久精品综合小说 ,国产精品夜色7777狼人,国内精品视频久久http://www.aygfsteel.com/f6k66ve/category/44093.html遇高山,我御風而翔,逢江河,我凌波微波zh-cnMon, 01 Mar 2010 08:01:32 GMTMon, 01 Mar 2010 08:01:32 GMT60mysql亂碼問題http://www.aygfsteel.com/f6k66ve/archive/2010/03/01/314173.htmlaskzsaskzsMon, 01 Mar 2010 07:52:00 GMThttp://www.aygfsteel.com/f6k66ve/archive/2010/03/01/314173.htmlhttp://www.aygfsteel.com/f6k66ve/comments/314173.htmlhttp://www.aygfsteel.com/f6k66ve/archive/2010/03/01/314173.html#Feedback0http://www.aygfsteel.com/f6k66ve/comments/commentRss/314173.htmlhttp://www.aygfsteel.com/f6k66ve/services/trackbacks/314173.html 查看服務器和數據庫使用何種編碼的MYSQL命令為:
SHOW VARIABLES LIKE 'character_set_%'; 
以及 SHOW VARIABLES LIKE 'collation_%';
看到里面使用的編碼了,我本以為應該使用的是utf8,所以,不是utf8的,那就說明問題在這里了.

運行命令:SHOW VARIABLES LIKE 'character_set_%'; 結果如下
'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'latin1'
'character_set_filesystem', 'binary'
'character_set_results', 'utf8'
'character_set_server', 'latin1'
'character_set_system', 'utf8'
'character_sets_dir', 'D:\soft_work\mysql\share\charsets\'
果然發現有幾個不對的
運行命令:SHOW VARIABLES LIKE 'collation_%'; 結果如下
'collation_connection', 'utf8_general_ci'
'collation_database', 'latin1_general_ci'
'collation_server', 'latin1_general_ci'

只要把那幾個的編碼改成utf8的,那應該就可以了.
1: 在Mysql的配置文件 my.ini里加上服務器的默認編碼配置: default-character-set=utf8
2: 修改你的數據庫的字符編碼:進入Mysql數據庫,通過命令修改你的數據庫字符編碼:
ALTER DATABASE `databaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci 
(修改后需要重啟Mysql數據庫)
3: 如果你的表以及表里的字段使用了不正確的字符編碼,同樣需要修正過來:命令:
 修改表的編碼: ALTER TABLE `tableName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
 修改字段的編碼: ALTER TABLE `tableName` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
(做好了時,在看一下上面那兩個查看字符編碼的命令,看看是否全部都變成了utf8)
把mysql數據庫的編碼改為utf8后,有試了一下程序,發現不在是亂碼了,終于好了,
總結,mysql的亂碼有一下幾個方面
1,JSP設計頁面上是中文,但運行時看到的是亂碼,如果是這種情況,就要指定jsp頁面的編碼,默認情況下,jsp頁面的編碼是ISO-8859-1,解決方法就是在jsp頁面的編碼地方加入
<%@ page language="java" contentType="text/html;charset=utf8" %>,
2 ,當用Request對象獲取客戶提交的漢字時,會出現亂碼,那么就需要在項目中加入filter了,(filter在tomcat中自帶的有例子,可以照著例子改一下,也可以在googl中搜索一下)
3,由于使用doget方法引起的亂碼,可以試著使用dopost提交,
或者是打開tomcat的server.xml文件,找到區塊,加入如下一行: 

URIEncoding=”GBK” 

完整的應如下: 
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"
 connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf8"/>
需要重啟tomcat,

4,寫入到數據庫是亂碼:
如果你是通過JDBC直接鏈接數據庫的時候,配置的代碼如下:
jdbc:mysql://localhost:3306/xxxxx?useUnicode=true&characterEncoding=utf8
這樣保證到數據庫中的代碼是不是亂碼。

5,如按照上述步驟解決,寫到數據庫中的還是亂碼,就要檢查數據庫,表的編碼方式了,如果跟程序中的不一致,就要按照本文的介紹的方法修改數據庫或者是表的編碼了。



askzs 2010-03-01 15:52 發表評論
]]>
主站蜘蛛池模板: 济源市| 武山县| 历史| 江油市| 金沙县| 江达县| 肇庆市| 托克逊县| 屏东县| 高淳县| 遂溪县| 秀山| 淄博市| 贺州市| 凉山| 邯郸市| 长乐市| 昌乐县| 汉寿县| 资兴市| 田东县| 会同县| 濉溪县| 姜堰市| 象山县| 开鲁县| 和政县| 北流市| 霍山县| 马公市| 大竹县| 长宁区| 吐鲁番市| 高州市| 调兵山市| 屏山县| 河津市| 文登市| 杂多县| 霍林郭勒市| 武穴市|