2012-01-02 70 views
0

我尝试通过我的java程序将越南文字符插入到MySQL数据库中。它正在插入,但某些字符被插入为垃圾。在尝试检索时,我得到的是相同的垃圾值而不是某些字符。任何人都可以告诉我应该做什么? MySQL中是否存在问题或者是否有支持这些字符的数据库?哪个数据库支持插入越南文字?

回答

1

实例?

一般来说,你需要确保:

  1. 你的表上的所有文本列UTF-8的排序规则创建的。这可以在几个级别完成:config default-character-set=utf8,db CREATE DATABASE ... DEFAULT CHARACTER SET utf8,表CREATE TABLE ... DEFAULT CHARACTER SET utf8和列column VARCHAR(255) CHARACTER SET utf8。在初始创建后,您只能在列上执行ALTER;更改默认字符集不会更改该列。

  2. 通过在连接字符串或属性中指定useUnicode=truecharacterEncoding=UTF-8属性,表明您的数据库连接采用UTF-8编码。确保您拥有最新的MySQL连接器,因为过去曾出现过严重的错误。

  3. 您的处理流中没有其他任何内容在数据库连接或返回数据库连接之前对其进行修改。确保你没有使用任何地方的默认编码,因为它可能是错误的。设置标志-Dfile.encoding=UTF-8可能有助于将其作为临时解决方法,但您不想依赖它。

(如果你测试的一部分涉及到印刷到终端,要知道,在Windows命令提示符下将无法做任何UTF-8,所以你绝对会看到垃圾在那里。)