日期:2014-05-18  浏览次数:20727 次

jsp连数据插入总有乱码问题
javaBean的内容
String   sql   =   "insert   into   userinfo(UserName)   values
( ' "   +   user.getUsername()+   " ') "
sql   =   new   String(sql.getBytes( "ISO8859-1 "),   "GB2312 ");
System.out.println( "cccc "+sql);   ---这里输出的语句内容是中文
int   i   =   db_conn.sm.executeUpdate(sql);   --但到这里
出错.且不能插入数据
Incorrect   string   value:   '\xB7\xA8\xB0\xB8 '   for   column   'UserName '   at   row   1

例2
内容是从servlet收到且每个数据经过.getBytes( "ISO8859-1 "), "gb2312 ");
传到上边javaBean里的sql.getBytes( "ISO8859-1 "), "gb2312 ");处理过后
在System.out....输出是???     插入数据也是???

求大虾帮下小弟!.在线等.




------解决方案--------------------
你用的什么web服务器?可以在web.xml中加过滤器,网上有很多这个过滤器的配置例子。
------解决方案--------------------
首先要明确你servlet中原先的编码是什么,按你的现状原来的编码肯定不是ISO8859-1,对不是此类的编码你采用ISO8859-1对他取字节数组,然后再用gb2312编码则之后形成的肯定是乱码。

解决方法:察看你的数据来源(一般是你的jsp页面)的编码,如果是gb2312,就不需要用
sql = new String(sql.getBytes( "ISO8859-1 "), "GB2312 ");
直接赋值即可

如果是其他的编码,比如是utf8
则要改成
sql = new String(sql.getBytes( "utf8 "), "GB2312 ");
------解决方案--------------------
最好把JSP,数据库,参数 的编码统一.编码这块确实挺烦人的.