jboss7「struts2」「tomcat」URL中文乱码解决方案

懒惰的方案:整站均使用utf-8格式

jsp页面:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>



前端页面:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>



对于页面,本身应该使用:utf-8 无bom格式,不要使用txt的ANSI格式。

struts2本身:

<constant name="struts.i18n.encoding" value="UTF-8" />



过滤器:

	<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>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>



web容器:

tomcat:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8"/>



jboss7:

 <system-properties>
        <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
        <property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
    </system-properties>



注意这段代码放在 <extensions></extensions>之后。

另外注意,使用javascript做url跳转带中文时,需要编码一下:

var url="${ctp}/VodAction!nursery.action?nursery.name="+encodeURIComponent(keywords);



还有在action的java文件里要使用:

URLEncoder.encode("您还没有登录","UTF-8");



而在页面使用上的URL链接,带中文,可不做任何处理。

数据库的编码,也需要设置为UTF-8:

mysql:

oracle就不做举例了。

草木全
分享到:
共 0 条  此列表为空  当前1/1页

© 2014 究问社区 copyRight 豫ICP备13003319号-1