环境: mysql4.1+tomcat5.5+netbeans5.5.1+JDK1.6
<%@ page contentType="text/html; charset=gb2312" %>
<%request.setCharacterEncoding("GB2312");%>
mysql的字符集定义也是GB2312
在数据库后台手动添加中文数据,在JSP页面查询数据库,中文正常显示.
但是从浏览器输入中文或者在JSP定义中文字符串,然后插入数据库,数据库里就显示乱码(一堆问号)
我试图了解传过来的字符集到底是什么编码,代码如下:
<%
byte[] temp1;
temp1 = ChieseString.getBytes("ISO-8859-1");
String compstring1;
compstring1 = new String(temp1);
if(ChieseString.equals(temp1)){
out.println("ISO-8859-1");
}
%>
穷举了所有的字符,但是结果是都不输出.也就以为这ChieseString不属于任何编码,但也许是代码的问题
总之从数据库读没有问题,但是要写入数据库,输入的内容如果是中文就是一堆问号
我不明白问题出在哪
以前我用过SQL SERVER的数据库,当时只要用下面的代码就能解决,可是现在也不行
<%! //汉字处理,去除乱码
public String getString(String s) {
if(s==null) {
s="";
}
try{
byte b[]=s.getBytes("ISO-8859-1");
s= new String(b,"gb2312");
}catch(Exception e) {
}
return s;
}
%>
我真的是没招了~~~~~~~~ :-(