java learnging

          一塊探討JAVA的奧妙吧
          posts - 34, comments - 27, trackbacks - 0, articles - 22

          導航

          公告

          big_seal@msn.com
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章檔案

          相冊

          收藏夾

          Blog站點

          favorite blog

          java website

          java基礎

          my blog

          other blog

          temp link

          個人Blog

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

          最近看到好多關于MySql支持utf-8編碼的問題,剛好自己也要用,去找了一下,沒有寫的很全面的。
          整理了一下,供大家參考。

          在一下服務器設置測試通過
          服務器配置:
              window2000
              Tomcat 4.1,5.19
              Mysql 4.1, 5.0
              Java語言,JDK1.4.2
              數(shù)據(jù)庫驅(qū)動mysql-connector-java-3.0.10-stable-bin.jar
              Struts1.1
             
          開始前先看提示
          MySQL數(shù)據(jù)庫的4.1是一個分水嶺,4.1直接支持Unicode,以下版本支持的不好;

          MySQL JDBC Driver的3.0.16也是一個分水嶺,3.0.16版本會取數(shù)據(jù)庫本身的編碼,然后按照該編碼轉(zhuǎn)換,這種方式和Oracle的JDBC Driver是一樣的。例如你的數(shù)據(jù)庫是GBK編碼的話,JDBC Driver就會把數(shù)據(jù)庫里面的取出來的字符串按照GBK往unicode轉(zhuǎn)換,送給JVM。因此正確的設置數(shù)據(jù)庫本身的編碼就尤為重要。

          MySQL JDBC Driver3.0.16以下的版本則不然,它不會那么智能的根據(jù)數(shù)據(jù)庫編碼來確定如何轉(zhuǎn)換,它總是默認使用ISO8859-1,因此你必須使用 characterEncoding=GBK來強制他把數(shù)據(jù)庫中取出來的字符串按照GBK來往unicode轉(zhuǎn)換。

          因此,使用什么數(shù)據(jù)庫版本,不管是3.x,還是4.0.x還是4.1.x,其實對我們來說不重要,重要的有二:

          1) 正確的設定數(shù)據(jù)庫編碼,MySQL4.0以下版本的字符集總是默認ISO8859-1,MySQL4.1在安裝的時候會讓你選擇。如果你準備使用UTF- 8,那么在創(chuàng)建數(shù)據(jù)庫的時候就要指定好UTF-8(創(chuàng)建好以后也可以改,4.1以上版本還可以單獨指定表的字符集)

          2) 使用3.0.16以上版本的JDBC Driver,那么你就不需要再寫什么characterEncoding=UTF-8

          開始設置:
          1.打開WinMysqlAdmin管理器,選擇my.ini設置項,在[mysql]段加入一下代碼
            default-character-set=utf8
            設置后重新啟動MySQL服務。
            再打開 WinMysqlAdmin管理器,選擇Variables項,查看一下變量的值是否如下
            character_set_server  = utf8
            character_set_system  = utf8
            character_set_database  = utf8
            character_set_client  = utf8
            character_set_connection  = utf8
            character_set_results = utf8
           
            collation_connection = utf8_general_ci
            collation_database = utf8_general_ci
            collation_server = utf8_general_ci
           
            如果不能重啟Mysql服務,則可能拼寫錯誤,檢查一下
            以上變量的值都符合,恭喜你,設置成功

          2.Java中調(diào)用數(shù)據(jù)庫連接方法如下
            jdbc:mysql://192.168.1.87/mytest?useUnicode=true&characterEncoding=utf8
           
            如果驅(qū)動使用3.0.16以上版本的JDBC Driver,那么你就不需要再寫什么characterEncoding=UTF-8
           
          3.在頁面提交數(shù)據(jù)處理請看 "中文問題","struts國際化問題"——終極解決方案 一文,非常清楚

          4.完成以上三步,你的系統(tǒng)就可以運行與UTF-8編碼環(huán)境了。



          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 张家港市| 龙岩市| 玛曲县| 济南市| 宁远县| 江口县| 安庆市| 木里| 安龙县| 荣成市| 云南省| 蚌埠市| 汕尾市| 武邑县| 靖江市| 崇左市| 景宁| 泗洪县| 滨州市| 禹州市| 乡城县| 江陵县| 监利县| 大连市| 观塘区| 广安市| 荥阳市| 吉安县| 肇东市| 建宁县| 垦利县| 寿宁县| 富阳市| 云林县| 石阡县| 镇赉县| 红原县| 新绛县| 洛宁县| 迭部县| 南汇区|