通过 Web 往数据库里写中文的问题

中文操作往往很烦的。一不小心就出错。

总结了一下,有以下几个地方需要配置,记录下来,以便日后对照检查。

数据库的设置

以 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");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值