【发布时间】:2016-08-31 22:51:27
【问题描述】:
我在生产中有这个 MySQL 表,它是 charset latin1_swedish_ci (aka latin1)。
现在,有一个 UTF-8 格式的传入内容(String : "\ud55c\ubc24\uc758")需要插入到名为 keywords 的 TEXT 列字段中桌子。
当我尝试执行 INSERT 时,我收到此错误:
Incorrect string value: '\xED\x95\x9C\xEB\xB0\xA4...' for column 'keywords' at row 1
我在我的 Java 代码中尝试了各种方法来尝试从 UTF8 转换为 ISO-8859-1,如下所示,但我仍然遇到同样的错误:
String convertedString = new String(originalString.getBytes("UTF-8"), "ISO-8859-1");
我知道 StackOverflow 上有一些解决方案提到将 MySQL 表的字符集从 latin1 更改为 UTF8,但遗憾的是我不能这样做,因为这是一个实时生产 MySQL 主服务器,而且它一直使用 latin1。
有没有人有任何建议来解决这个“不正确的字符串值”错误?
谢谢 是
【问题讨论】:
-
您需要将 in Java 的编码从 usc2 更改为 utf8。
ISO-8859-1与您展示的内容无关。你希望한밤,对吗? -
嗨 Rick James,感谢您的快速回复。将编码从usc2更改为utf8是什么意思?对不起,我没有关注。是的,我想去한밤
-
所以曾经有一个旧的 Python 脚本会从另一个 MySQL 数据库(在 utf-8 中)读取这个 unicode 文本并将其写入这个 latin1 MySQL 数据库,这个文本会显示为 í •œë°¤ì˜ 如果我能弄清楚如何在我的 Java 代码中将“\ud55c\ubc24\uc758”转换为“한밤옔,那么我很好
标签: java mysql encoding utf-8 latin1