Mysql 混合内容的拉丁语-1到UTF-8转换
最初,我们使用Mysql 混合内容的拉丁语-1到UTF-8转换,mysql,encoding,utf-8,Mysql,Encoding,Utf 8,最初,我们使用UTF-8编码运行一个数据库,我们不得不迁移到另一个错误地使用latin-1的服务器。问题是,大多数名称都包含特殊的外来字符,如果没有正确的编码,它们会变得怪异: 例如: 内齐河河流域 奥班 Eren KaragÃzlü 我能够使用以下查询将其转换回UTF: 选择convert(cast(convert(名称使用拉丁语1)作为二进制),使用UTF8)作为用户的名称 以上名称现在显示正确: 内齐赫·阿卡卡湖 LÜTFİchi OBAN 埃伦·卡拉戈兹吕 但是,以前编码为正确UTF-
UTF-8
编码运行一个数据库,我们不得不迁移到另一个错误地使用latin-1
的服务器。问题是,大多数名称都包含特殊的外来字符,如果没有正确的编码,它们会变得怪异:
例如:
内齐河河流域
奥班
Eren KaragÃzlü
我能够使用以下查询将其转换回UTF:选择convert(cast(convert(名称使用拉丁语1)作为二进制),使用UTF8)作为用户的名称代码>
以上名称现在显示正确:
内齐赫·阿卡卡湖
LÜTFİchi OBAN
埃伦·卡拉戈兹吕
但是,以前编码为正确UTF-8的所有数据现在显示为(NULL)
我的问题是,如何只转换断开的编码行,而保留正确编码的行不变?现在是“非此即彼”。问题是它们在顺序上是混合的,所以我不能用ID来区分它们
任何线索都会有帮助。谢谢
您是否可以选择coalesce(convert(…),name)
?几周前我注意到了这一点,但没有报告它修复取决于具体情况:更多讨论: