1.Tomcat设置utf-8编码
要设置GET的编码,可以修改server.xml文件中,相应的端口的Connector的属性:URIEncoding=“UTF-8”,这样,GET方式提交的数据才会被正确解码。
目录位置:
加入:URIEncoding=“UTF-8” :
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
2.表单form提交post方式
假如后台处理是servlet程序,在service方法起始处添加:
request.setCharacterEncoding("utf-8");
(必须在获取参数值之前加入)
如果以上方法无法解决(request.setCharacterEncoding失效),尝试构建新字符串进行强制转换
以下是基于tomcat只识别ISO-8859-1编码的特性进行字符串转换
String value=request.getParameter("value");
byte[] values=value.getBytes("ISO-8859-1");
String newValue=new String(values,"utf-8");
3.HTML支持中文显示
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
</body>
</html>
4.jsp支持中文显示
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
</body>
</html>
5.servlet返回中文字符串
response.setCharacterEncoding("utf-8"); //设置服务器字符集
response.setHeader("Content-Type","text/html;charset=utf-8"); //设置浏览器字符集,只有两者一致才不会出现中文乱码
//------------也可以用下面更简单方案------------
response.setContentType("text/html; charset=utf-8") //同时设置服务器和浏览器
PrintWriter writer=response.getWriter();
writer.write("这是回传的字符串");
6.Tomcat服务器控制台输出中文乱码
有两种操作方法:
①Edit Configurations(每次新建项目,必须都要设置一遍)
VM options:
-Dfile.encoding=UTF-8
②设置环境变量(只需要进行一次设置,对多个项目都有效)
变量名:
JAVA_TOOL_OPTIONS
变量值:
-Dfile.encoding=UTF-8
成功创建后,重启idea即可 (注意只能进行①②中一种操作)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75103.html