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

07-08-03 raulliran
    

环境: 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,我当然试过,但是不行