It's been a long time to see people ask how Chinese is always a number in web development. The reason is simple, because most people use Tomcat servers, and the Tomcat server's default encoding is iso-8859-1 (Western European characters). Is it because the iso-8859-1 (Western European character) code causes what we often see? Resolution
Method One: The simplest is the most frequently used method.
<%@ page language= "java" pageencoding= "GBK"%>
or <%@ page contenttype= "TEXT/HTML;CHARSET=GBK", where you can use gb2312 or GBK, but GBK supports more characters than gb2312.
This method is used for Chinese display in JSP pages.
Method Two: Use the filter.
Filters are used primarily for form submissions, and data is inserted into the database? Resolution This should also be the encoding that Tomcat does not specify for the request, or the default encoding for ISO-8859-1 encoding.
Write a Setcharacterencodingfilter class.
Import java.io.IOException;
Import Javax.servlet.Filter;
Import Javax.servlet.FilterChain;
Import Javax.servlet.FilterConfig;
Import javax.servlet.ServletException;
Import Javax.servlet.ServletRequest;
Import Javax.servlet.ServletResponse;
public class Setcharacterencodingfilter implements Filter {
protected String encoding = NULL;
protected Filterconfig filterconfig = null;
Protected Boolean ignore = true;
public void init (Filterconfig filterconfig) throws Servletexception {
This.filterconfig=filterconfig;
This.encoding=filterconfig.getinitparameter ("encoding");
String value=filterconfig.getinitparameter ("ignore");
if (value==null)
This.ignore=true;
else if (Value.equalsignorecase ("true"))
This.ignore=true;
Else
This.ignore=false;
}
public void Dofilter (ServletRequest request, servletresponse response, Filterchain chain) throws IOException, servletexception {
TODO automatically generate method stubs
if (Ignore | | (request.getcharacterencoding () = null)) {
String encoding = selectencoding (request);
if (encoding!= null)
request.setcharacterencoding (encoding);
}
Chain.dofilter (request, response);
}
public void Destroy () {
TODO automatically generate method stubs
this.encoding = null;
This.filterconfig = null;
}
Protected String selectencoding (ServletRequest request) {
return (this.encoding);
}
}
and then Web.xml Plus
<!-- Set Character Encoding-->
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.struts.common.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Set Character Encoding-->
The benefits of using filters are many, especially among projects.
And more useful when using internationalization, as long as the page specifies <%@ page language= "java" pageencoding= "UTF-8"%>, the server will display the correct character set according to the local locale.
So I particularly recommend using filters.
Method Three: Modify the uriencoding in Tomcat's Server.xml file.
<Connector debug="0" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true"
port="80" redirectPort="8443" enableLookups="false" minSpareThreads="25" maxSpareThreads="75"
maxThreads="150" maxPostSize="0" URIEncoding="GBK" >
</Connector>
This approach is primarily for getting strings from URLs.
In tomcat5.0 and above versions, the Post and get methods differ in the processing of encodings. If you get Chinese in the URL, it will appear? Resolution However, there is no problem with the tomcat4.1 version, because the tomcat4.1 post and get methods are the same when coding.