【发布时间】:2013-01-22 05:19:01
【问题描述】:
我正在使用 mysql dbms 来存储来自维基百科的页面。我在 my.cnf 文件中使用指令将字符集编码设置为 utf-8(维基百科编码):
[mysqld]
character_set_server = utf8
并使用'chararacter set utf8' 属性定义创建了我的数据库。
我还通过以下方式更改了 mysqld 客户端的字符集编码:
- 在初始化我的 jdbc 驱动程序时插入
'charSet=utf8'属性。 - 查询
'set names utf8'
但是我注意到 mysql 服务器用其他字符替换了一些字符。
例如,它将á 替换为a。
更新
我已经运行了命令show variables like '%char%',确保character_set_client 和character_set_set 都是utf8。
如何在我的数据库中存储正确的字符?谢谢!
【问题讨论】:
-
[1]您使用的是哪个驱动程序? [2]在设置参数存入数据库之前你是用
new String([String Object].getBytes(), "UTF-8")吗? -
[1]我正在使用 MySQL 连接器/J。 [2] 我试过
new String([String Object].getBytes(), Charset.forName("UTF-8")),但还是不行。 -
能否从 MySQL Workbench 或类似工具中插入 UTF-8 文本?如果是这样,那么正如 Eran 指出的那样,它可能与您的连接 URL 设置有关。
-
是的,我可以使用 MySQL Workbench 存储 utf8 字符串。
-
当您运行
show variables命令时,character_set_server的值是多少?您尝试了我下面的建议吗?
标签: java mysql jdbc utf-8 character-encoding