首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

web开发中的乱码有关问题

2012-11-07 
web开发中的乱码问题1.解决struts2传值到action乱码问题这两天在研究struts2,页面给aciton传值时乱码问题

web开发中的乱码问题

1.解决struts2传值到action乱码问题

这两天在研究struts2,页面给aciton传值时乱码问题的确挺让人费解;
还好现已解决,希望能帮助更多和我遇到同样问题的人:
只需要在struts.xml文件中添加:
<constant name="struts.i18n.encoding" value="gb2312" />
页面编码格式如果是gb2312那么value值就写gb2312,页面编码如果是GBK那么value值就写GBK;总之页面什么编码格式这里的value就写什么格式。这样简单语句话就解决了乱码问题
如下:
<struts>
<constant name="struts.i18n.encoding" value="gb2312" />
<package name="com" extends="convention-default">
?? ............
</struts>

?

?

2.jsp页面提交到action乱码

我通过jsp页面的一个文本域,提交到action里面,所有编码设置的都是UTF-8(jsp页面,配置文件等等),其中包括一个设置编码的filter,跟踪filter确实也执行了下面的语句:encoding为UTF-8
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
但是在action里面通过String productName=request.getParameter("name");取到的值还是乱码,
如果productName = new String(productName.getBytes("ISO-8859-1"),"UTF-8");这样的话就不是乱码。

请大虾们帮忙看看,怎么能解决这个问题啊。

《1》关于中文乱码解决办法有几种:
1.在页面设置编码方式(UTF-8)
2.编写字符编码过滤器 在过滤器中写下一下代码:
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;
//设置字符编码属性
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
3.在tomcat修改端口的地方 加上这样一句代码:URIEncoding="UTF-8"
如下所示:? <Connector port="9090" protocol="HTTP/1.1"
????????????? connectionTimeout="20000"
????????????? redirectPort="8443"
URIEncoding="UTF-8"?? />
4.将要发送的数据这样传送:
URLEncoder.encode("要传送的字符串","UTF-8");
5.修改浏览器的编码方式
6.修改自己系统或编辑器的编码方式

《2》JSP与页面参数之间的乱码
JSP获取页面参数时一般采用系统默认的编码方式,如果页面参数的编码类型和系统默认的编码类型不一致,很可能就会出现乱码。解决这类乱码问题的基本方法是在页面获取参数之前,强制指定request获取参数的编码方式:request.setCharacterEncoding("GBK")或 request.setCharacterEncoding("gb2312")。
如果在JSP将变量输出到页面时出现了乱码,可以通过设置 response.setContentType("text/html;charset=GBK")或 response.setContentType("text/html;charset=gb2312")解决。
手动转码
String? gb = new String(iso.getBytes("ISO-8859-1"),"GB2312");

?

《3》

页面本身有中文,一定要在PrintWriter out = resp.getWriter();之前加上??? resp.setContenetType(“text.html;charest=gbk”);
? 解决get方式乱码---修改server.xml --?URIEncoding=”gbk”
? 解决post方式提交内容乱码--?request.setCharacterEncoding(“gbk”);

热点排行