和servlet相关的中文编码的一些经验
2017-06-12 00:00
127 查看
servlet处理http协议传输中文的时候有点复杂,我总结一下自己的经验。
URL的字符集
为了在URL中含有asc ii编码以外的字符时,前人制定了url encoding的标准。这个标准只定义了用%加上其它字符的16进制码来代替那个字符传输。对于像中文这样的字符,同样的字符可能通过不同的字符集被映射到不同的16进制码上,但是http协议并没有定义如何告知别人url encoding用的是什么字符集。既然这样,只好给服务器设定一个默认的字符集了。应用程序如果需要使用其它字符集,只能自己完成那样的功能。在tomcat中可以通过server.xml的Connector元素的URIEncoding属性来设置默认值。body中的字符集
body中的字符集可以通过头部Content-Type的值来指定,如Content-Type: application/x-www-form-urlencoded; charset=utf-8。如果没有制定的话,服务器又是只能用默认值了。对于tomcat,好像还没有办法设定这个默认值。所以Content-Type里面最好把字符集显式的带上。
ServletRequest.setCharacterEncoding()
ServletRequest上的这个方法,可以让应用程序设定用什么字符集来解析URL和body内的字符。但是我在使用tomcat的时候发现,tomcat只解析一次,所以如果要设定这个值,一定要在调用ServletRequest的getParameter() getParameterNames()等方法之前设定,否则就算设定了,之后的getParameter()等方法还是会用第一次解析出的值。一般,我们用一个filter来设定这个值,那么这个filter应当在最外层,最先处理http请求。不知道其它应用服务器是否也是这样的。相关文章推荐
- 中文乱码问题的一些解决方案和经验
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- JBOSS维护经验 JBoss 的一些配置(端口,虚拟目录,虚拟主机,中文问题,数据库连接) 虚拟目录与域名指向成功
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 关于中文乱码问题的一些解决方案和经验
- java中文乱码问题一些解决方案和经验(转)
- java中文乱码问题一些解决方案和经验(转)
- Servlet中通过过滤器实现统一的手动编码(解决中文乱码)
- java编码中的一些经验和教训
- 关于java中文乱码问题一些解决方案和经验
- 中文乱码问题的一些解决方案和经验
- 收藏:jsp中java中文编码问题的个人经验
- 中文乱码问题的一些解决方案和经验
- midlet通过http访问servlet,进而访问oracle的一些中文处理问题
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享!
- servlet相关编码设定
- JSP/Servlet中的编码相关设置