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.   回復  更多評論   



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


          網站導航:
           
          主站蜘蛛池模板: 福泉市| 高雄县| 金平| 宾阳县| 托克逊县| 景东| 罗山县| 丽江市| 平罗县| 鹤庆县| 合作市| 旬阳县| 达日县| 九龙坡区| 双柏县| 唐海县| 武山县| 浠水县| 弋阳县| 依兰县| 三穗县| 罗平县| 高台县| 利津县| 阿合奇县| 宜丰县| 华亭县| 饶河县| 柘城县| 连云港市| 景泰县| 泽州县| 德保县| 收藏| 呼和浩特市| 喀喇沁旗| 宁化县| 青岛市| 禹州市| 双峰县| 平安县|