您的位置:首页 > 其它

编码 乱码 请求、响应乱码

2015-09-28 17:28 246 查看
详解乱码的博文:
http://blog.csdn.net/chenssy/article/details/42672219 http://blog.csdn.net/haitianxiaowu1/article/details/52460105 http://www.cnblogs.com/homg/archive/2013/04/16/3344962.html
1》源文件保存,操作系统默认file.encoding;

2》用系统默认格式读源文件(还原);翻译为class文件存到内存时,jdk默认file.encoding转换为java内部的unicode格式

3》将内存中的unicode格式,写入class文件;

4》运行编译的类,

1.console控制台:读class文件到内存,jvm运行,获取系统默认编码格式转换并输出;用户输入的内容

2.JSP/Servlet类:jsp页面jsp编译器查看jsp文件是否设置格式,没有则用jdk的默认方式

3.java类与数据库之间:待续

response.setCharacterEncoding("utf-8");// 设置在开头

request.setCharacterEncoding("utf-8");

response.setHeader("Content-type:", " text/html; charset=utf-8");//浏览器打开的编码格式

<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

JSP文件标配,只配置一个也能不乱码,具体原因未细查

System.getProperty("file.encoding");//系统默认编码格式

tomcat service.xml文件修改,  content元素,增加:URIEncoding="UTF-8" 修复GET请求中文乱码的情况;

servlet乱码:请求响应对象都设置编码格式 request.setCharacterEncoding("utf8");

response.setCharacterEncoding("utf8");(默认只对post生效), post将不乱码,

get请求参数乱码:(使得对get生效)useBodyEncodingForURI="true"

不改tomcat配置的方案: new String(str.getBytes("iso8859-1"),"utf8");//修正编码格式

不太理解过滤器设置编码问题:目前认为是节省了每个请求 响应的重复设置编码操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: