feng

          飄逸~~~~~life

          碰到的MYSQL數據庫中文問題小結

          最近做畢業設計的時候,用了mysql5+tomcat5.5+jsp+servlet
          用了數據庫連接池,出現中文問題的原因倒不是它,都一樣的,
          發現插入數據是中文的時候就插不進去,tomcat后臺大概都是這個錯誤
          com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 't
          opic' at row 1
                  at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868)
                  at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
                  at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedSt
          atement.java:1169)
                  at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPrepared
          Statement.java:693)
                  at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
          :1404)
                  at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
          :1318)
                  at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java
          在網上搜了好多方法,自己都調不大起來,今天小試了下,OK了
          把主要過程記下
          我的系統是xp的默認字符肯定是GB2312吧,我也沒改系統的東西,
          改了MYSQL的一些東西,就是Mysql的字符吧,安裝的時候有選字符集
          default character set的時候選擇best support for Multilinggualism 這樣處理后反正我看到
          在my.ini的配置文件里默認字符都utf-8的
          連接數據庫的URL 后面也沒有跟setcharacter之類的,只有數據庫的名字。
          servlet里面接收變量的時候也沒有getBytes這樣的處理,直接
          String subject = request.getParameter("subject");
          我看到關鍵好象是在JSP頁面上應該聲明
          <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
          還有一個關鍵是用PrepareStatement的話,
          dbc.prepareStatement("insert into news(topic,body,adddate,adduser,rootid,pic ) values(?,?,?,?,?,? )");
             dbc.setBytes(1,topic.getBytes("ISO-8859-1"));
          記住這里需要轉,也不能換成gb2312
          改成gb2312就會出現上面的錯誤
          我不太清楚原理,希望知道的人指定!

          posted on 2007-10-22 14:15 feng 閱讀(1265) 評論(1)  編輯  收藏

          Feedback

          # re: 碰到的MYSQL數據庫中文問題小結 2007-10-31 11:09 astamei

          Data too long for column 'topic

          plz show us ur ddl of table.   回復  更多評論   



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


          網站導航:
           
          主站蜘蛛池模板: 平远县| 含山县| 西乌珠穆沁旗| 张家口市| 乐至县| 南京市| 洪洞县| 广丰县| 宁远县| 襄城县| 梁平县| 怀化市| 柳江县| 东安县| 黄石市| 建宁县| 海安县| 新营市| 吴堡县| 莱州市| 武夷山市| 锡林郭勒盟| 兖州市| 旅游| 禄丰县| 兴国县| 咸阳市| 庆元县| 望谟县| 金坛市| 石渠县| 临城县| 淮南市| 龙门县| 安塞县| 威宁| 湖州市| 上犹县| 安仁县| 钟山县| 垫江县|