java中文乱码问题高手进

来源:百度知道 编辑:UC知道 时间:2024/06/24 00:27:54
我是BS模式下写的一个网站,在从jsp页面提交数据到数据库和数据库里读取数据到jsp页面,其中的汉字都会显示为问好乱码,用了许多方法都不行,大侠快救命

字符集设置没有设好。

在接受参数端使用
String key=new String(request.getParameter("key").getBytes("ISO-8859- 1"),"gb2312");
试试

写一个字符编码过滤器

你的问题说的不够清楚。jsp页面提交有post和get方式。
get方式提交过去的处理起来比较复杂,得先把中文由GBK转成ISO-8859-1,在接收端在由ISO-8859-1转换成GBK,通过如下代码可处理:
String ISO-8859-1=new String(Str.getBytes("GBK"),"ISO-8859-1");
String GBK = new String(ISO-8859-1.getBytes("ISO-8859-1"),"GBK");
对于post方式就简单了,你只需要在接受参数之前加上如下代码:
request.setCharacterEncoding("GBK");
对于不同的数据库,对中文的支持也有所不同,如果你用的是mysql。那你得给数据库连接串就是那个URL后面加上?UseUnicode=true&CharacterEncoding=utf-8,再把数据库里的字符集设置成utf-8,
这样才能正确的存储中文。
你从数据库里读取的数据在jsp页面显示是乱码,有可能是数据库里本身就存储的乱码,也有可能你的jsp页面编码没设置成GBK或其他中文格式。
--------------------------------------------------------
以上代码都是手写的,可能会有个别字母或大小写有误,但我觉着这已经足以帮助你在eclipse之类的开发工具里写出正确的代码了。
----------------------------------------------------------------------只问不管的人是不配得到