使用struts2+spring+tomcat+mysql数据库开发中文乱码问题解决方案
2012-09-05 12:11
435 查看
第一次使用mysql结合struts2和spring开发,接二连三碰到中文乱码异常问题。
理想下整个过程全部使用utf-8,中间不用转换编码。
首先,mysql数据库字符集全部设成utf-8,没有问题。
然后,struts.xml配置文件中加入
[xhtml] view
plaincopy
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
jsp页面加入
[xhtml] view
plaincopy
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
spring数据源配置(注意url)
[xhtml] view
plaincopy
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/bysj?useUnicode=true&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</bean>
一开始我url后面没有加编码,导致出现了一个诡异的问题:使用spring的jdbctemplate执行不带中文的sql语句没有问题,执行带中文的sql语句查不到数据,而将这条sql语句直接在数据库中执行却也完全没问题。
另外保险起见在web.xml中再加个经典的字符编码过滤器
[xhtml] view
plaincopy
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
最后tomcat中server.xml也要配置(URIEncoding="UTF-8"是添加上去的)。
[xhtml] view
plaincopy
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
搞定!
理想下整个过程全部使用utf-8,中间不用转换编码。
首先,mysql数据库字符集全部设成utf-8,没有问题。
然后,struts.xml配置文件中加入
[xhtml] view
plaincopy
<constant name="struts.i18n.encoding" value="UTF-8"></constant>
jsp页面加入
[xhtml] view
plaincopy
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
spring数据源配置(注意url)
[xhtml] view
plaincopy
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/bysj?useUnicode=true&characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</bean>
一开始我url后面没有加编码,导致出现了一个诡异的问题:使用spring的jdbctemplate执行不带中文的sql语句没有问题,执行带中文的sql语句查不到数据,而将这条sql语句直接在数据库中执行却也完全没问题。
另外保险起见在web.xml中再加个经典的字符编码过滤器
[xhtml] view
plaincopy
<filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
最后tomcat中server.xml也要配置(URIEncoding="UTF-8"是添加上去的)。
[xhtml] view
plaincopy
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
搞定!
相关文章推荐
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- 使用WebStorm开发web前端 网页中文乱码问题的解决方案
- 使用JSP开发应用程序时的编码(中文等乱码)问题的建议解决方案(包括接受request和数据库操作)
- 使用Struts进行JavaWeb开发的中文乱码问题解决方案
- 使用WebStorm开发web前端 网页中文乱码问题的解决方案
- 使用gSOAP开发实例(4) iconv解决中文乱码问题(续)
- Java web开发中使用get提交表单时的中文乱码问题
- SpringMVC使用@RequestBody后台返回前台中文字符串乱码的问题解决方案
- 使用Kettle抽取数据时,出现中文乱码问题解决方案
- 使用Java进行微信开发5 - 向用户发消息(无中文乱码问题)
- python开发环境PyScripter中文乱码问题解决方案
- 学习iOS开发之使用ZBar扫描二维码中文乱码问题
- JSP开发过程遇到的中文乱码问题及解决方案
- MFC使用webbrowser时navigate的url中有中文字符,在php服务器端取得的是乱码问题的解决方案
- putty中使用vi中文显示乱码问题的解决方案
- ndk开发过程中中文乱码问题的解决方案
- fedro1 16 64位使用apache+php+oci8+oracle instantclient开发遇到的中文乱码问题;
- javaweb开发中中文乱码问题的解决方案
- Fedora 14使用问题(一)-audacious的安装 和 Rhythmbox中文乱码解决方案