jsp之utf-8中文乱码,永远的痛!

试了一星期,过滤器什么该试的、不该试的都试过了,就是死活不行(就用utf-8,不能用GBK)代码就这几句,在test.jsp要正确显示:publicvoiddoGet(H... 试了一星期,过滤器什么该试的、不该试的都试过了,就是死活不行(就用utf-8,不能用GBK)
代码就这几句,在test.jsp要正确显示:
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
request.setAttribute("v","汉字");
request.getRequestDispatcher("test.jsp").forward(request,response);
}
展开
 我来答
crazy_newbie
2011-02-26
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
在你request.setAttribute("v","汉字")之前
加两句这个
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
因为你的jsp 默认的是ISO8859-1编码(不能讲汉字设置进去,否则就是乱码) 这两个的作用是把你的编码设置成utf-8的 另外在接收的jsp页面中 request中v对象的之前也要加这两句 response.setCharacterEncoding("utf-8"); request.setCharacterEncoding("utf-8");
这样每个文件的编码都设成了 utf-8的 这样就OK了
要设置成GBK编码的就把当中的utf-8改成GBK就行
更多追问追答
追问
你试过吗?行的话,我都不用来问了。
追答
麻烦你说话别这么冲好么?人家是好心帮你解决问题 不是看你这点分 这点分有一个狗屎用啊 
我当初是菜鸟的时候 用jsp 做跳转的 编码问题就是这样解决的 OK?
这种方法行不通的话 用struts2跳转 需要用jsp页面跳转这种落后的方式么? 是你请教别人问题 应当虚心点
电信吴老二
2013-04-12 · 超过10用户采纳过TA的回答
知道答主
回答量:50
采纳率:100%
帮助的人:11.9万
展开全部
我当时也遇到和你一样的问题,但是发现是自己错了。
需要特别注意的是:
request.setCharacterEncoding(“UTF-8”);
在这个语句之前不能调用任何的request.getParameter()方法,否则会设置tomcat的缺省字符集为"ISO-8859-1",并且使setCharacterEncoding的调用失效。

请检查一下你的request.setCharacterEncoding(“UTF-8”); 方法,是在任何的request.getParameter()方法调用之前调用的吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秋雨寒草露
2011-02-26 · TA获得超过192个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:132万
展开全部
String str = "你需要处理的字符串";
btye[] b = str.getByte("ISO-8859-1")
str = new String(b); //处理后的字符串!
把你得到的字符串用上面的代码处理一下就可以了!
更多追问追答
追问
不喜欢逐个处理的,想统一处理。
追答
你把这个写成一个构造方法或者普通的方法就可以了!每天调用就行了!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
贯真
2011-02-26 · TA获得超过2698个赞
知道大有可为答主
回答量:1022
采纳率:0%
帮助的人:1075万
展开全部
给你提供个思路,
可以考虑在服务器上加配置啊,我知道tomcat的配置可以这么加:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
URIEncoding="UTF-8"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>

希望对你有帮助把....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e6cf4c70c
2011-02-27 · TA获得超过281个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:190万
展开全部
你是用get方式获取数据的,而get方式获取的数据是在浏览器的地址栏中输入的,而地址栏的数据如果想正确提交就必须要进行编码动作,如果你没有进行编码,必乱,其中就例如空格用%20代替,规则很多就不在这里一一说明了,自己去查吧,很多文档,另外在提交数据的时候尽量避免使用get方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式