中文操作往往很烦的。一不小心就出错。
总结了一下,有以下几个地方需要配置,记录下来,以便日后对照检查。
数据库的设置
以 MySQL 为例,在创建数据库时,一定要指定编码
create database tomcat_realm
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
App Container 的设置
以 Tomcat 为例,一定要求 URI 编码时,采用 UTF-8
这样,在 GET 操作中,如果参数跟在 URL 中,也可以采用 UTF-8
具体的配置在 server.xml 中:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="UTF-8"
页面设置的问题
在 JSP 的声明中, 指定 pageEncoding
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
在 HTML 的声明中,在 meta 中指定 charset = UTF-8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
在 Servlet 的 request 中指定
在 Servlet 中,要把 request 的编码设为 UTF-8:
request.setCharacterEncoding("UTF-8");