0

我已将 mysql 5.0 配置为存储 utf8 字符。我通过以下查询对其进行了检查:


SELECT character_set_name FROM information_schema.`COLUMNS` C
WHERE table_schema = "oprdb"
  AND table_name = "rtable"
  AND column_name = "rtxt";

结果是utf8


SHOW FULL COLUMNS FROM rtable

这向我展示collationutf8_general_ci


show variables like "character_set_database";
show variables like "collation_database";

这也显示utf8在结果中


似乎mysql配置正确。我从用户在文本字段中键入文本的 html 页面获取文本,然后我使用 jquery post 将该文本提交给 servlet。

我的 html 页面顶部有这个——

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

我也在我的表格中添加了这个——

enctype="text/plain;charset=UTF-8"

在我的 servlet 中 doPost 的第一行是

request.setCharacterEncoding("UTF-8");

然后我只是将该文本保存在数据库中。但问题是,我无法存储这种文本

 Hiki iaʻu ke ʻai i ke aniani; ʻaʻole nō lā au e ʻeha.
 Я магу есці шкло, яно мне не шкодзіц

他们有什么我想念的吗?

编辑:

这是我的数据源配置..

<Resource auth                = "Container" 
            driverClassName     = "com.mysql.jdbc.Driver" 
            factory             = "org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" 
            initialSize         = "10" 
            logAbandoned        = "true"
            maxActive           = "50" 
            maxIdle             = "2" 
            maxWait             = "10000" 
            name                = "jdbc/oprdb" 
            username            = "root"
            password            = "123456" 
            removeAbandoned     = "true" 
            removeAbandonedTimeout = "60"  
            type                   = "javax.sql.DataSource" 
            url                    = "jdbc:mysql://localhost:3306/oprdb" />
4

2 回答 2

1

更新您的 url 以jdbc:mysql://localhost:3306/oprdb?useUnicode=true&characterEncoding=UTF-8 获取 utf-8 支持

于 2012-07-13T10:20:30.013 回答
0

这些是我系统中 MySQL Workbench 中的唯一设置:

在此处输入图像描述

结果是添加了这两行:

character-set-server = utf8
character-set-filesystem = utf8

/etc/mysql/my.cnf文件中。

确保您的数据库表的排序规则是 utf8。

于 2012-07-13T10:26:23.003 回答