通常,字符äåö没问题,因为浏览器和Web应用程序的tomcat / java使用的默认字符集为latin1即。“理解”这些字符的ISO-8859-1。
要使UTF-8在Java + Tomcat + Linux / Windows + Mysql下工作,需要满足以下条件:
配置Tomcat的server.xml 必须配置连接器使用UTF-8编码url(GET请求)参数:
在上面的示例中,关键部分是URIEncoding =“ UTF-8”。这可以保证Tomcat将所有传入的GET参数处理为UTF-8编码。结果,当用户将以下内容写入浏览器的地址栏时:
https://localhost:8443/ID/Users?action=search&name=ж 字符ж被当作UTF-8处理,并被编码为%D0%B6(通常在到达服务器之前由浏览器访问)。
POST请求不受此影响。
CharsetFilter 然后是时候强制Java Web应用程序以UTF-8编码方式处理所有请求和响应了。这要求我们定义一个字符集过滤器,如下所示:
package fi.foo.filters;
import javax.servlet.*; import java.io.IOException;
public class CharsetFilter implements Filter {
private String encoding;
public void init(FilterConfig config) throws ServletException {
encoding = config.getInitParameter("