Servlet处理乱码的总结
来源:互联网 发布:python微服务框架 编辑:程序博客网 时间:2024/05/05 22:02
页面提交数据到servlet中,经常出现中文乱码问题,而且不同的提交方式处理乱码的方式不同。下面总结一下post与get提交数据,servlet处理乱码的解决方案。
1、post方式解决方案
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding( "utf-8" );
2、get方式解决方案
String string = request。getParamers("");
String = new String(string.getBytes("ISO8859-1","utf-8"));
在这里解析一下new String(string.getBytes("ISO8859-1","utf-8"))处理中文乱码,为什么是ISO8859-1
原因在于tomcat默认全部都是用ISO-8859-1编码,不管你页面用什么显示,Tomcat最终还是会替你将所有字符转做ISO-8859-1.那 么,当在另目标页面再用GBK翻译时就会将本来错的编码翻译成GBK的编码,这时的文字会乱码.
所以需要先将得到"字符"(不管是什么)都先用字节数组表示,且使用ISO-8859-1进行翻译,得到一个在ISO-8859-1编码环境下的字节数组.例如:AB表示成[64,65].然后再用GBK编码这个数组,并翻译成一个字符串.
我们想一想,这样我们不是每获取一个参数都要new String来转码?这样不仅代码量大而且耗内存。有没有好的解决方案呢。。
解决方案就是:修改tomcat的默认编码
在这里解析一下new String(string.getBytes("ISO8859-1","utf-8"))处理中文乱码,为什么是ISO8859-1
原因在于tomcat默认全部都是用ISO-8859-1编码,不管你页面用什么显示,Tomcat最终还是会替你将所有字符转做ISO-8859-1.那 么,当在另目标页面再用GBK翻译时就会将本来错的编码翻译成GBK的编码,这时的文字会乱码.
所以需要先将得到"字符"(不管是什么)都先用字节数组表示,且使用ISO-8859-1进行翻译,得到一个在ISO-8859-1编码环境下的字节数组.例如:AB表示成[64,65].然后再用GBK编码这个数组,并翻译成一个字符串.
我们想一想,这样我们不是每获取一个参数都要new String来转码?这样不仅代码量大而且耗内存。有没有好的解决方案呢。。
解决方案就是:修改tomcat的默认编码
修改tomcat的server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8"
/>
这样配置tomcat之后,当采用get方式提交时,servlet就不用每次获取数据都new String来转码了。
注意:当你配置tomcat后不能再用String = new String(string.getBytes("ISO8859-1","utf-8"));转码了
温馨提示:
还有一种最好的方式处理中文乱码:过滤器(这里不详细讲)
redirectPort="8443"
URIEncoding="utf-8"
/>
这样配置tomcat之后,当采用get方式提交时,servlet就不用每次获取数据都new String来转码了。
注意:当你配置tomcat后不能再用String = new String(string.getBytes("ISO8859-1","utf-8"));转码了
温馨提示:
还有一种最好的方式处理中文乱码:过滤器(这里不详细讲)
0 0
- Servlet处理乱码的总结
- Servlet中文乱码的处理
- 处理乱码的问题 servlet
- Servlet的乱码处理手记
- JSP及Servlet中文乱码处理总结
- JSP及Servlet中文乱码处理总结
- jsp&servlet中乱码的简单处理
- JSP和Servlet的中文乱码处理
- JSP与Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- JSP和Servlet的中文乱码处理
- Numpy 数组属性 (二)
- 网上找到的读取BMP图像和显示BMP图像的两个函数,做过小小的改善
- 高性能服务器设计——常用网络服务器设计模型
- fedora以root登录的方法
- c#中string与String的区别
- Servlet处理乱码的总结
- 从零开始学android:Android中的基本控件(下) —— 对话框:Dialog
- sql
- OJ返回的结果分别是什么意思
- cocos2dx win32移植到xcode
- java中常见的知识点1
- 线索二叉树
- ngx_event_block 函数解析
- 这一年以来读过的书(2013)