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



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


          網站導航:
           
          主站蜘蛛池模板: 德格县| 新和县| 堆龙德庆县| 江都市| 澎湖县| 涿州市| 那曲县| 库车县| 灵石县| 墨脱县| 辽宁省| 大洼县| 高阳县| 安溪县| 黄龙县| 铜鼓县| 福建省| 重庆市| 清远市| 万载县| 郸城县| 永济市| 原平市| 漳州市| 丹阳市| 东乡| 新乐市| 顺昌县| 鄂托克前旗| 洱源县| 黄大仙区| 东乡族自治县| 蛟河市| 综艺| 怀来县| 寻甸| 新龙县| 饶平县| 宁津县| 若羌县| 崇明县|