中文乱码处理专题
来源:互联网 发布:台风战机参数知乎 编辑:程序博客网 时间:2024/05/16 05:18
中文乱码处理专题
1.从浏览器获取服务器的数据
如果说在服务器中就是正确的编码,那么浏览器的解码方式,就设置成utf-8就可以了
response.setContentType("text/html;charset=utf-8");
2.从服务器获取浏览器的数据
表单form
(1) post
在服务器端设置成浏览器端的编码方式。也就是说,不管你浏览器是什么编码方式提交的数据,我都按照你的编码方式获取数据
代码: request.setCharacterEncoding(“utf-8”);
(2) get
因为内容是通过请求行也就是url传递的,并没有封装到request对象中,所以上述方法失效
tomcat默认接受浏览器的编码是ISO-8859-1,也就是说浏览器提交的数据,tomcat按照ISO-8859-1
进行编码,如果服务器中需要使用这个数据的话,那么解码的方式就必须按照ISO-8859-1,然后把它转成utf-8的编码
进行输出,我们可以写一个工具类来实现并封装这个功能,以便更好地使用
当然:我们在提交表单的时候尽量用post提交
写一个工具类:
package com.ldl.utils;public class MyTools { public static String getNewString(String str) { String newString=""; try { newString=newString(str.getBytes("iso-8859-1"),"utf-8");// 把iso-8859-1 转换成 utf-8 } catch (Exceptione) { e.printStackTrace(); } return newString; }}
超链接
< a href="http://www.sohu.com?name=王明">测试</a>
本质上就是通过get提交,处理方法同get
sendRedirect() 发生乱码
同get,比如在servletA中接受用户提交的用户名,然后将该用户名作为参数跳转到servletB,就可以直接这样写,这样在servletB中获取的就是正确的编码了
response.sendRedirect("servletB?username=request.getParameter("username").getBytes("iso-8859-1"),"utf-8");
补充:获取输出流的位置
request.setCharacterEncoding("utf-8");//设置服务器以utf-8的编码来接受response.setContentType("text/html;charset=utf-8");//设置浏览器以utf-8的编码来解析PrintWriter out =response.getWriter();
PrintWriter out =response.getWriter();request.setCharacterEncoding("utf-8");//设置服务器以utf-8的编码来接受response.setContentType("text/html;charset=utf-8");//设置浏览器以utf-8的编码来解析
上面这两种大家有没有看出来什么区别,如果没有那么你就会碰到跟我一样的困扰
我一开始的排版就是第二种,因为我的servlet的模板就是在post方法中调用get方法,然后get方法中直接获取输出流对象
我一开始就是中文乱码问题解决了好久,问了好多人都没有发现这个问题,后来才知道,应该先设置解码方式,然后再获取输出流,否则一开始就获取输出流,浏览器的解码方式还是没有变成utf-8。
0 0
- 中文乱码处理专题
- Java Web -- Servlet(10) 中文乱码处理专题
- 中文乱码专题
- (5) 中文处理专题
- JSP中文乱码处理
- JSP中文乱码处理
- 中文乱码处理方案
- JSP中文乱码处理
- 中文乱码处理
- WebSphere处理中文乱码
- Ajax处理中文乱码
- 中文乱码处理办法
- 中文乱码处理
- 中文乱码处理办法
- jsp中文乱码处理
- FTPClient中文乱码处理
- Tiles 中文乱码处理
- 中文乱码处理
- javascript中canvas绘图的基本用法
- POJ3617 Best Cow Line
- 遮盖层加弹出框页面布局不影响
- mac下的pycharm可能遇到的问题
- 实体小三角-制作方法
- 中文乱码处理专题
- 动规+同余
- hihocoder #1033 交错和问题的思考
- 363.Trapping Rain Water-接雨水(中等题)
- Maven+Jetty/Tomcat进行web开发部署
- Java网络爬虫crawler4j学习笔记<8> URLCanonicalizer类
- leetcode_7. Reverse Integer 反转整数的各个数字
- linux内核参数备注
- java设计模式(三)