【问题标题】:mysql 5.0 unable to store utf8mysql 5.0 无法存储 utf8
【发布时间】:2012-07-13 03:13:03
【问题描述】:

我已将 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

这将collation 显示为utf8_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" />

【问题讨论】:

标签: java mysql database utf-8 character-encoding


【解决方案1】:

将您的网址更新为jdbc:mysql://localhost:3306/oprdb?useUnicode=true&amp;characterEncoding=UTF-8 支持 utf-8

【讨论】:

  • 尝试使用一些 MySQl GUI 工具复制您的文本并在 MySql 表列中手动更新,以验证它不是 mysql 问题。
【解决方案2】:

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

结果是这两行相加:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-11-18
    • 2013-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多