feng

          飄逸~~~~~life

          碰到的MYSQL數(shù)據(jù)庫(kù)中文問題小結(jié)

          最近做畢業(yè)設(shè)計(jì)的時(shí)候,用了mysql5+tomcat5.5+jsp+servlet
          用了數(shù)據(jù)庫(kù)連接池,出現(xiàn)中文問題的原因倒不是它,都一樣的,
          發(fā)現(xiàn)插入數(shù)據(jù)是中文的時(shí)候就插不進(jìn)去,tomcat后臺(tái)大概都是這個(gè)錯(cuò)誤
          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
          在網(wǎng)上搜了好多方法,自己都調(diào)不大起來,今天小試了下,OK了
          把主要過程記下
          我的系統(tǒng)是xp的默認(rèn)字符肯定是GB2312吧,我也沒改系統(tǒng)的東西,
          改了MYSQL的一些東西,就是Mysql的字符吧,安裝的時(shí)候有選字符集
          default character set的時(shí)候選擇best support for Multilinggualism 這樣處理后反正我看到
          在my.ini的配置文件里默認(rèn)字符都utf-8的
          連接數(shù)據(jù)庫(kù)的URL 后面也沒有跟setcharacter之類的,只有數(shù)據(jù)庫(kù)的名字。
          servlet里面接收變量的時(shí)候也沒有g(shù)etBytes這樣的處理,直接
          String subject = request.getParameter("subject");
          我看到關(guān)鍵好象是在JSP頁(yè)面上應(yīng)該聲明
          <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
          還有一個(gè)關(guān)鍵是用PrepareStatement的話,
          dbc.prepareStatement("insert into news(topic,body,adddate,adduser,rootid,pic ) values(?,?,?,?,?,? )");
             dbc.setBytes(1,topic.getBytes("ISO-8859-1"));
          記住這里需要轉(zhuǎn),也不能換成gb2312
          改成gb2312就會(huì)出現(xiàn)上面的錯(cuò)誤
          我不太清楚原理,希望知道的人指定!

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

          Feedback

          # re: 碰到的MYSQL數(shù)據(jù)庫(kù)中文問題小結(jié) 2007-10-31 11:09 astamei

          Data too long for column 'topic

          plz show us ur ddl of table.   回復(fù)  更多評(píng)論   



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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 贡觉县| 米易县| 睢宁县| 海宁市| 滦南县| 静乐县| 逊克县| 固阳县| 铜山县| 娱乐| 乌鲁木齐市| 葫芦岛市| 疏勒县| 宜川县| 桑日县| 邵武市| 柯坪县| 修武县| 新营市| 安龙县| 阳新县| 尉犁县| 常宁市| 家居| 宿迁市| 尼玛县| 射阳县| 洛阳市| 措勤县| 中超| 齐齐哈尔市| 西乡县| 横山县| 长宁区| 延寿县| 陵川县| 临漳县| 马公市| 周至县| 尉犁县| 海丰县|