一、JAVA
解决java控制台中文乱码问题
第一步
1:打开intelliidea安装路径,IntelliJIDEA15.0.6\bin找到idea.exe.vmoption文件,打开,在最后一行填加:“-Dfile.encoding=utf-8”,如图所示,保存。
第二步
2:设置idea file编码。在菜单栏找到”File->settings->搜索File Encodeing” 设置utf-8。如图所示
第三步
3:在菜单栏找到HELP->Edit Custom VM OPtions中加 -Dfile.encoding=utf-8
第四步
4:设置idea server编码。在菜单栏找到”run->editconfigration” 找到”server”选项卡 设置 vm option为 -Dfile.encoding=utf-8
二、Tomcat
解决Tomcat服务器在DOS命令窗口中的乱码问题(控制台乱码)
将CATALINA_HOME/conf/logging.properties文件中的内容修改如下:
java.util.logging.ConsoleHandler.encoding = GBK
处理POST请求的乱码问题
Tomcat9前(包括9在内),如果前端请求体提交的是中文,后端获取之后出现乱码,怎么解决这个乱码?执行以下代码。
设置请求体的字符集。(显然这个方法是处理POST请求的乱码问题。这种方式并不能解决get请求的乱码问题。)
request.setCharacterEncoding("UTF-8");
// Tomcat10之后,request请求体当中的字符集默认就是UTF-8,不需要设置字符集,不会出现乱码问题。
在Tomcat9之前(包括9),响应中文也是有乱码的,怎么解决这个响应的乱码?
response.setContentType("text/html;charset=UTF-8");
// 在Tomcat10之后,包括10在内,响应中文的时候就不在出现乱码问题了。以上代码就不需要设置UTF-8了。
get请求乱码问题怎么解决?
// get请求发送的时候,数据是在请求行上提交的,不是在请求体当中提交的。
// 方案:修改CATALINA_HOME/conf/server.xml配置文件
<Connector URIEncoding="UTF-8" />
//注意:从Tomcat8之后,URIEncoding的默认值就是UTF-8,所以GET请求也没有乱码问题了
利用jsp处理响应时中文乱码问题
JSP的page指令解决响应时的中文乱码问题:
- 通过page指令来设置响应的内容类型,在内容类型的最后面添加:charset=UTF-8
<%@page contentType="text/html;charset=UTF-8"%>
,表示响应的内容类型是text/html,采用的字符集UTF-8
利用过滤器解决中文乱码问题
在web.xml文件中配置<filiter>
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>