日期:2014-05-17  浏览次数:20732 次

有关JSP中文乱码的问题
为什么我用request.setCharacterEncoding("GBK"),修改编码无效,但用
new String(request.getParameter("title").getBytes("ISO-8859-1"),"gbk")却有效呢?
哪位高手解释解释
随便问一下,在什么情况下用第一种好,什么情况下用第二种好

------解决方案--------------------
request.setCharacterEncoding("GBK")这个是设置请求的编码格式,
new String(request.getParameter("title").getBytes("ISO-8859-1"),"gbk")你这样设置才有效,那是因为你jsp页面设置的为<%@ page language="java" pageEncoding="ISO-8859-1"%>
------解决方案--------------------
第一个是请求编码的格式为GBK,第二个主要的是进行的页面的设置。
------解决方案--------------------
按LZ说的正常情况下应该是没错的。

貌似java编码标准默认是ISO-8859-1
你后者是先将request里边的字符用ISO-8859-1取出,然后实例一个字符串将获取的数据转换成GBK.

------解决方案--------------------
我处理这种问题有两种方法
1:每次新建一个JSP页面的时候 先把page指令中的pageEncoding设置一下,修改为GBK,不行的话 就是UTF-8. 因为page指令是对整个页面都有效的,他默认的就是8859-1,记住每次新建页面都要改这个,必须滴 呵呵不然你的页面修改之后是不是没法保存;
2:jsp页面是向用户显示信息的,所以你在接受参数的时候要使用request.设置编码的那个方法也是GBK
OK 就这样 还不行 你在找人 我一般都是这样处理
GBK是中文编码 GB2313是简体中文