JSP 中文问题(找了好多文章还是不行)

raulliran 07-08-03
    

环境: 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;
}
%>

我真的是没招了~~~~~~~~ :-(

    

raulliran
2007-08-03 14:37

补充:
我是第一次用netbeans,所以有可能是netbeans的配置问题,希望高手能告诉我解决中文问题的netbeans配置方法

还有会不会是环境的版本太高了??

还有,我知道从表单传过来绝大部分都是ISO-8859-1的编码,其实我只要转成gb2312的编码就可以了
但是为什么转换完了,一输出还是一堆乱码呢??
难道是我的代码的问题??
[该贴被raulliran于2007年08月03日 14:41修改过]

yananay
2007-08-03 15:45

郁闷,难道你没听过UTF-8编码吗。。。

raulliran
2007-08-03 15:53

穷举了所有的字符,但是结果是都不输出.也就以为这ChieseString不属于任何编码,但也许是代码的问题
================================================================
我是穷举了所有的字符编码,为了省空间我只写了一个(ISO-8859-1)
UTF-8,我当然试过,但是不行