setRequestProperty("Content-Type", "application/x-www-form-urlencoded");前台:URLEncoder.encode(text)
后台:URLDecoder.decode(text)//JDK 1.4可以有两个参数,另一是表示你将用那编码格式.但是以上情况还有可能就是你的web.xml里配置的默认字符集有问题.
我以前weblogic默认BGK 后来改成GB2312就好了

解决方案 »

  1.   

    我是用TOMCAT,我把web.xml里面的字符集改成GB2312,也还是不行。你说的这些是什么意思:
    setRequestProperty("Content-Type", "application/x-www-form-urlencoded");前台:URLEncoder.encode(text)
    后台:URLDecoder.decode(text)//JDK 1.4可以有两个参数,另一是表示你将用那编码格式.要怎样修改?
      

  2.   

    1、我把能够正确得到结果的SQL语句发送到HTM页面显示出来,发现中文的显示都是乱码,但是这些都是能够得到正确的结果的。
    但是我在SERVLET中写死一个SQL语句,里面包含有中文,然后把这个SQL语句发送到HTM页面显示出来,发现中文显示都是正常的。但是这个语句在SERVLET中执行是不能得到正确的结果的。
    2、我还做了个测试,我做了两个互相转换字符集的函数,就是这种:
    AscToUni:...new  String(uni.getBytes("GB2312"),"ISO8859-1")...和
    UniToAsc:...new  String(asc.getBytes("ISO8859-1"),"GB2312")...然后在SERVLET中用这两种方法转换一个写死的中文字符串,就是这样
    AscToUni('中文')和UniToAsc('中文'),然后输出到HTM中显示,结果都是显示正常的中文。
    3、这两个试验说明了什么?
    简单来说说明了一个现象,中文显示出来是乱码的就能够正常在数据库中执行,如果显示出来是正常中文的,在数据库中执行的结果就不正确,也就是和数据库中字段的值不匹配。