我尝试通过我的java程序将越南字符插入MySQL数据库。它正在插入,但某些字符作为垃圾插入。在尝试检索时,我得到相同的垃圾值代替一些字符。谁能告诉我应该做些什么? MySQL中是否存在问题,或者是否有支持这些字符的数据库?
答案 0 :(得分:1)
'垃圾'的例子和代码?
一般来说,你需要确保:
您的表是在所有文本列上使用UTF-8排序规则创建的。这可以在以下几个级别完成:config default-character-set=utf8
,db CREATE DATABASE ... DEFAULT CHARACTER SET utf8
,table CREATE TABLE ... DEFAULT CHARACTER SET utf8
和列column VARCHAR(255) CHARACTER SET utf8
。初始创建后,您只能通过列上的ALTER
执行此操作;更改默认字符集不会更改列。
通过在连接字符串或属性中指定useUnicode=true
和characterEncoding=UTF-8
属性,您与数据库的连接采用UTF-8编码。确保您拥有最新的MySQL连接器,因为过去一直存在严重的错误。
您的处理流中没有任何其他内容在它们到达数据库连接之前或在退出的路上会破坏字符。确保您没有在任何地方使用默认编码,因为它可能是错误的。设置标志-Dfile.encoding=UTF-8
可能有助于将其作为临时解决方法,但您不想依赖它。
(如果您的部分测试涉及打印到终端,请注意Windows命令提示符将无法对UTF-8执行任何操作,因此您肯定会在那里看到垃圾。)
答案 1 :(得分:0)
你好存储越南字符没问题,但首先检查mysql FAQ: