您的位置:首页 > 编程语言 > Java开发

java web应用开发中的汉字编码问题

2018-03-27 22:40 113 查看
正文:有效规避汉字无法正常显示
1.服务器接收请求数据
1.1  url方法接收数据时,仅靠以下三条语句是不够的(写在servlet中)
 request.setCharacterEncoding("utf-8");
 response.setCharacterEncoding("utf-8");
 response.setContentType("text/html;charset=utf-8");还需要st=new String(st.getBytes("ISO-8859-1"),"utf");来帮忙
比如servlet中获得表单提交的数据namerequest.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8");
String name=request.getParameter(name);
name=new String(st.getBytes("ISO-8859-1"),"utf-8");
1.2 get方法接收数据时,修改tomcat的server文件,重设字符编码;
1.3 post方法接收数据时,以上语句即可。

注:以上是我在做自己的项目时的经验总结,一定要注意,服务器在不同情况下接收数据的不同处理,细节很重要。
附:关于编码     pageEncoding=“utf-8”与ContentType=“text/html;charset=utf-8”的比较分析:pageEncoding:设置JSP源文件和响应正文中的字符集编码。 contentType:设置JSP源文件和响应正文的字符集编码及MIME类型。可见,pageEncoding和contentType都可以设置JSP源文件和响应正文中的字符集编码。但也有区别:设置JSP源文件字符集时,优先级为pageEncoding>contentType。如果都没有设置,默认ISO-8859-1。设置响应输出的字符集时,优先级为contentType>pageEncoding。如果都没有设置,默认ISO-8859-1。一个JSP的源文件需要经过三个阶段,两次编码,才能完成一次完整的输出。(pageEncoding指定编码--utf8(.java文件)--utf8(.class文件)--contentType指定编码)    request.setCharacterEncoding("utf-8");设置对客户端请求进行重新编码的编码方式;    response.setCharacterEncoding("utf-8");设置对服务器响应进行重新编码的编码方式;    response.setContentType("text/html;charset=utf-8");设置对服务器响应进行重新编码的编码方式,且确定浏览器对响应数据的处理办法;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: