java中文乱码问题解决
Posted 精灵lc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中文乱码问题解决相关的知识,希望对你有一定的参考价值。
1 处理乱码方式:
1 连接数据库的时候
jdbc.properties:jdbc:mysql://localhost:3306/myproject?useUnicode=true&characterEncoding=utf8
2 修改mysql配置文件my.ini/my.cnf default-character-set=utf8
3 修改tomcat中的配置文件server.xml改为
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
4 在web.xml配置spring过滤器
<filter>
<filter-name>char</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>
</filter>
<filter-mapping>
<filter-name>char</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5 设置mysql字符集
show variables like‘character_set_%‘;
把显示的character_set_**全都设置成utf8,即是:set character_set_serve=‘utf8‘
show variables like ‘%collation%‘;
把显示的都设置成为如下:set collation_server=‘utf8_general_ci‘
6.取值时HTtp(post)请求中的中文乱码
在Servlet页面中 添加
request.setCharacterEncoding("utf-8");
user_name = request.getParameter("user_name") == null? "" : java.net.URLDecoder.decode(request.getParameter("user_name"), "UTF-8");
7。前台返回????
后台赋值:errorMessage = URLEncoder.encode("redis中没有该定期数据信息", "UTF-8").replace("+", "%20");
前台取值:decodeURIComponent(errorMessage)
以上是关于java中文乱码问题解决的主要内容,如果未能解决你的问题,请参考以下文章
form表单提交中文乱码(前台中文到JAVA后台乱码)问题及解决