编码 乱码 请求、响应乱码
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");//修正编码格式
不太理解过滤器设置编码问题:目前认为是节省了每个请求 响应的重复设置编码操作
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");//修正编码格式
不太理解过滤器设置编码问题:目前认为是节省了每个请求 响应的重复设置编码操作
相关文章推荐
- Sublime Text
- FPGA与STM32串口通信
- Nodejs服务器端脚本
- Java NIO:NIO概述
- 第七章 用户文件和目录权限管理
- Material Design 总结
- System V Application Binary Interface (1)
- C# WindowsForm 员工管理系统五【查看工资】
- DNS 安全威胁
- LeetCode——Linked List Cycle
- css3 学习
- MPChartLib绘制曲线图
- noip 近年分析
- Calendar SyncAdapter :: Only sync adapters may write to account_name
- MySQL安装过程
- Mysql 免安装版 root@localhost第一次密码设置
- 屏幕旋转问题小结
- wamp下修改mysql root用户的登录密码方法
- [LeetCode] Find the Duplicate Number
- 移动虚拟机后修改 MAC 地址