Sas*_*lat 2 unicode jsp tomcat7
我已经用netbeans 7.0和tomcat 7.0创建了一个JSP项目,没有任何问题.
当我将它导出到WAR并将其部署到我的Tomcat服务器时,此行不起作用:
<% if (request.getParameter("submit").contains("?????")) { ...
Run Code Online (Sandbox Code Playgroud)
但这些有效:
<% if (request.getParameter("emplist") != null) { ...
Run Code Online (Sandbox Code Playgroud)
这个问题是怎么造成的,怎么解决?
在TOMCAT_HOME/conf/web.xml,您可以添加过滤器以启用UTF-8字符编码
添加以下内容:
<filter>
<filter-name>setCharacterFilter</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>setCharacterFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
如果要将URL编码为包含UTF-8,则必须向URIEncoding="UTF-8"Tomcat连接器添加a .
找到您的HTTP连接器(TOMCAT_HOME/conf/server.xml通常可以找到8080分配的端口)并添加URIEncoding如上所示的属性,如下所示:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8"
/>
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助.