spring,web,java 开发中乱码解决方案
2017-06-26 09:31
393 查看
修改HTML/JSP页面编码格式:
<meta charset="UTF-8">或<%@ page contentType="text/html; charset=UTF-8"%>
web.xml中的编码设置( 需要设置forceEncoding参数值为true,强制以目标编码为编码格式 )
3.tomcat的server.xml配置文件
4.数据库乱码
配置数据源编码格式<property name="url"
value="jdbc:mysql://121.40.90.125/test?useUnicode=true&characterEncoding=utf-8"></property>
然后去修改数据库、表中列的编码格式为utf8
[b]让MySQL支持Emoji表情[/b]
解决方案:将Mysql的编码从utf8转换成utf8mb4。
修改数据库字符集:ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; 修改表的字符集:ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 修改字段的字符集:ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;5.SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,
但是当返回值是String的时候,中文会乱码,原因是因为其中字符串转换和对象转换用的是两个转换器,
而String的转换器中固定了转换编码为"ISO-8859-1"
解决方案:第一种:在@RequestMapping中添加produces="text/html;charset=UTF-8
第二种:在MVC 配置中加入,spring版本必需为3.1或以上版本才可以下配置<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<meta charset="UTF-8">或<%@ page contentType="text/html; charset=UTF-8"%>
web.xml中的编码设置( 需要设置forceEncoding参数值为true,强制以目标编码为编码格式 )
<filter> <filter-name>CharacterEncoding</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>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>但这个设置是针对POST请求的,tomacat对GET和POST请求处理方式是不同的,要处理针对GET请求的编码问题,则需要改tomcat的server.xml配置文件,如下:
3.tomcat的server.xml配置文件
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
4.数据库乱码
配置数据源编码格式<property name="url"
value="jdbc:mysql://121.40.90.125/test?useUnicode=true&characterEncoding=utf-8"></property>
然后去修改数据库、表中列的编码格式为utf8
[b]让MySQL支持Emoji表情[/b]
解决方案:将Mysql的编码从utf8转换成utf8mb4。
修改数据库字符集:ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci; 修改表的字符集:ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 修改字段的字符集:ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;5.SpringMVC的@ResponseBody注解可以将请求方法返回的对象直接转换成JSON对象,
但是当返回值是String的时候,中文会乱码,原因是因为其中字符串转换和对象转换用的是两个转换器,
而String的转换器中固定了转换编码为"ISO-8859-1"
解决方案:第一种:在@RequestMapping中添加produces="text/html;charset=UTF-8
第二种:在MVC 配置中加入,spring版本必需为3.1或以上版本才可以下配置<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
相关文章推荐
- JAVA,web开发,中文乱码解决方案MyTools
- Java Web开发(JSP、Servlet)乱码的一揽子解决方案
- JAVAWEB开发过程中中文乱码问题解决方案
- java web 开发中的乱码解决方案自我总结
- java web 开发中文乱码的一般解决方案
- Java web开发乱码解决方案
- java web开发乱码问题解决方案(一)
- javaweb开发中中文乱码问题的解决方案
- JQuery中使用Ajax传中文参数乱码解决方案(javaweb开发)
- Java Web开发(JSP、Servlet)乱码的一揽子解决方案
- java web开发中乱码的一些体会
- MyEclipse 开发 SSH 整合时 java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit 解决方案
- MyEclipse 开发 SSH 整合时 java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit 解决方案
- [原]Java web学习系列之 Java web开发中的SSH整合(Struts、Spring、Hibernate)(下)
- [原]Java web学习系列之 Java web开发中的SSH整合(Struts、Spring、Hibernate)(上)
- java web开发中遇到的问题及解决方案(个人学习日志,持续更新)
- MyEclipse 下利用Struts2进行Web开发的乱码问题的综合解决方案
- javaWeb开发中的字符过滤器配置--->让你二步轻松告别乱码
- [原]Java web学习系列之 Java web开发中的Spring整合Hibernate
- 浅谈java web开发中的中文乱码的解决方法