懒惰的方案:整站均使用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>
tomcat:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
<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>
另外注意,使用javascript做url跳转带中文时,需要编码一下:
var url="${ctp}/VodAction!nursery.action?nursery.name="+encodeURIComponent(keywords);
URLEncoder.encode("您还没有登录","UTF-8");
数据库的编码,也需要设置为UTF-8:
mysql:
oracle就不做举例了。