解决jsp中文乱码问题
在jsp中,当使用out.print(request.getParameter("parameter-name"))输出表单数据时,如果表单数据为中文字符时,则输出的内容是乱码。
引起中文乱码的原因是,在默认情况下,提取表单数据使用的编码格式为UTF-8.为了解决中文乱码问题,首先要使用 ISO-8859-1 编码格式将表单数据存储到字节数组中,然后再使用借助 gb2312的编码格式将字节数组转换为字符串。完整的处理表单的程序代码如下:
String str=request.getParameter("parameter-name");
Byte[] buffer=str.getByte("ISO-8859-1");
String str1=new String(buffer,"GB2312");
张孝祥的《Javaweb开发内幕-核心基础》对中文乱码问题有详细的讲解,建议好好看看(另外,孙鑫的Java教学视频也有对乱码的详细讲解)。在该书的p356页,是这么描述的:
【由于getParameter方法将本来是gb2312编码的请求参数值按照iso8859-1字符集编码转换成了一个不正确的unicode字符串,printWriter.println方法再将这个不正确的unicode字符串按照gb2312字符集编码转换成数组输出时 就出现了中文乱码问题。
iso8859-1字符集编码到unicode编码的转换是一种可逆的运算,没有发生信息损失(原理参考孙鑫的Java视频教学),只要将unicode字符串再转换成iso8859-1编码 就可以还原出最初的字节数组。
然后,我们将还原出的初始字节数组按照他本来的字符集编码转换层unicode,就可以得到正确的unicode字符串。然后再将正确的unicode按照一种正确的字符集编码进行输出是,浏览器就可以显示出正确的中文字符了。】
具体的方法可以参考上面的代码
关键字:解决jsp中文乱码问题 jsp 中文乱码 jsp乱码问题 jsp中文显示乱码 jsp页面乱码
jsp表单提交乱码 jsp页面显示乱码 中文参数传递乱码 jsp 参数 中文乱码 jsp 传递参数 jsp传递中文参数 jsp传递多个参数
url 中文参数 乱码 jsp 乱码 jsp 中文乱码 jsp乱码问题
补充:Jsp教程,Java技巧及代码