基本的页面加编码就不说了。get方式传中文,window.open打开窗口传中文在后台和url地址栏没乱码,但jsp页面request.getParameter时总是乱码,看上去很不合理,很不爽,一种方法就是服从,多加一个转码new String(request.getParameter("title").getBytes("ISO8859-1"),"UTF-8"),另外一种最直接的方法是改源头,tomcat中的server.xml设置了get方式的url编码默认为ISO8859-1,需要在配置文件中添加编码属性
server.xml
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
添加完URIEncoding="UTF-8"重启server后,无需转码直接正常使用。
以上方法只能解决get方式的乱码
至于post方式的乱码要通过filter设置,或者每次调用手动设置request.setCharacterEncoding("UTF-8");
<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>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
转