【发布时间】:2013-02-05 12:41:04
【问题描述】:
在我的数据库中出现错误
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column
我使用 Java 和 MySQL 5。我知道 4 字节 Unicode 在 Java 中是合法的,但在 MySQL 5 中是非法的,我认为这可能会导致我的问题,我想检查我的数据类型,所以这是我的问题: 如何检查我的 UTF-8 数据是 3 字节还是 4 字节 Unicode?p>
【问题讨论】:
-
我建议先查看您的列数据类型长度限制和您尝试插入的数据的大小。如果您将 100K 字符插入到
VARCHAR中,则没有编码有问题。 -
我不认为 4 字节 UTF-8 编码的字符是这个问题的原因。更可能的原因是一个 n 字符的字符串,它在 UTF 时占用 m 个字节(带有 m > n) -8 编码,但应放入 VARCHAR(n)。
-
@Jon 我先检查了一下,这不是我已经解决的问题,但我仍然认为我将来会使用编码检查,谢谢大家的帮助
-
@JoachimSauer 仅供参考 MySQL 将
VARCHAR(n) CHARSET utf8视为N*3字节结构,因此这不太可能是问题所在。问题很可能是 OP 只是试图插入太多数据。
标签: java mysql unicode utf-8 character-encoding