解决Tomcat服务器中文编码
来源:互联网 发布:百度us优化怎么做 编辑:程序博客网 时间:2024/06/07 04:59
Tomcat服务器请求编码
Tomcat默认情况下,数据在服务端与浏览器传输过程中以ISO-8859-1编码的方式传输。如果传递的是中文则会出现乱码。为了解决获取请求中文参数的问题,我们可以先将数据以ISO-8859-1编码解码成二进制,再转换成UTF-8的形式,代码如下:
//byte[] bytes = account.getBytes("ISO-8859-1"); //account = new String(bytes, "UTF-8");
上面的形式可以解决我们的问题,不过每次都要写这种代码,很浪费时间,以下介绍其他的解决方案
GET方式
可以在tomcat的conf/server.xml中,添加URIEncoding配置(不过一般情况下,我们不要求GET传递中文参数):
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />
POST方式
对于POST请求,我们可以在获取参数之前添加代码setCharacterEncoding():
@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); //记住设置编码的代码必须在获取参数内容代码之前 String account = req.getParameter("account");}
Tomcat服务器响应编码
上面谈到获取浏览器的请求码如果是中文会出现乱码,现在将中文发送给浏览器,同样也会出现乱码。代码如下:
@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getOutputStream().write("Hello world".getBytes()); resp.getOutputStream().write("深度学习".getBytes());}
解决方案1:
resp.setCharacterEncoding("UTF-8"); resp.getOutputStream().write("Hello world<br />".getBytes()); resp.getOutputStream().write("深度学习".getBytes());
解决方案2:
resp.setContentType("text/html;charset=utf-8"); resp.getOutputStream().write("Hello world<br />".getBytes()); resp.getOutputStream().write("深度学习".getBytes());
阅读全文
0 0
- 解决Tomcat服务器中文编码
- 解决tomcat服务器中文乱码问题
- Tomcat服务器版本和编码对中文数据的影响
- 一劳永逸的解决tomcat中文编码request请求
- tomcat 设置UTF编码 解决中文接收乱码问题
- xajax0.5中文乱码解决 服务器编码为gb2312时
- tomcat 支持中文编码
- Tomcat中文编码配置
- Tomcat中文编码
- Tomcat中文编码
- tomcat中文编码相关
- 解决apache+tomcat服务器环境中文乱码的问题
- linux 下,解决tomcat服务器接收中文乱码的问题
- Apache+tomcat服务器解决中文乱码的问题
- tomcat 服务器 编码
- struts中文编码解决
- DOM4J中文编码解决
- linux解决中文编码
- ios实现navigationItem的titleLabel双行显示
- Redis Sentinel 机制和用法
- 对java数组操作方法
- golang sleep
- 网络复习-网络层
- 解决Tomcat服务器中文编码
- 一起学Netty(二)之 Hello Netty的原型图解
- 16.04下搭建Web服务器(MySQL+PHP+Apache)
- java面试题(2)
- 类集-list操作
- Android Studio 快捷键
- JQuery选择器总结
- 类集-set操作
- RCNN+fast RCNN+faster RCNN