gpt4 book ai didi

java - MySQL 数据库的 UPDATE 语句中出现两字节 UTF-8 字符错误

转载 作者:行者123 更新时间:2023-11-29 01:01:07 27 4
gpt4 key购买 nike

更新语句似乎只适用于一到三个字节长的 UTF-8 字符。

我的测试代码

def sql = sql.newInstance('jdbc:mysql://.../...?useUnicode=true&characterEncoding=UTF-8',
'...', '...', 'com.mysql.jdbc.Driver')
String value = 'β'
sql.execute('UPDATE Kldb_SynonymVersion SET synonyms=? WHERE id=11940', [value])

失败了

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'synonyms' at row 1

在 com.mysql.jdbc.MysqlIO.checkErrorPacket 中。

它适用于 value="a"或 value = '€'。

我正在使用

Java 1.6.0_20
MySQL 5.0.26
mysql 连接器 5.1.13

表格的字符集设置为utf8。

我知道我可以禁用截断,但我只是避免了异常并在数据库中得到了一个无效字符('?')。

最佳答案

你确定MySQL列的列编码是UTF-8吗

MySQL 驱动程序能够将 unicode 字符写入 ASCII 列,甚至可以正确读取它们,因此可以长时间不通知问题。

关于java - MySQL 数据库的 UPDATE 语句中出现两字节 UTF-8 字符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3140538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com