ServiceStack 和 Ormlite 将字符串 "Don’t do it" 保存到 MySQL 时出现编码问题
Encoding issue when save string "Don’t do it" by ServiceStack and Ormlite to MySQL
用 ServiceStack 和 OrmLite 不要这样做 将对象保存到 MySQL.
字符串更改为 Don’t do it in MySQL.
如果我从 MySQL 中读取值并再次保存,则得到 不要这样做
它只发生在一个 Windows server 2016 with .net 4.62,它在其他 Windows with .net 4.62 和 OSX with Mono 上正常工作。
ServiceStack 库版本为“4.5.0”; MySQL版本为5.6.23;数据库 table 和列字符集是 UTF-8。
可能是某处编码转义错误,反复出现。我最近从 .net 4.5 升级到 4.62。
我无法调试它:它在开发 MAC 和测试 Windows 上工作;只在生产环境失败了
问题已解决:
它来自 MySQL 连接字符串。我们最近添加了触发此编码问题的“ConnectionReset=True;”。
它将一个UTF-8字符串转换为Western 1252编码读取;所以 ' 将显示为 ’,依此类推
它能够在另一个 Windows 服务器上复制。
设置为false或移除后;它修复了。
用 ServiceStack 和 OrmLite 不要这样做 将对象保存到 MySQL.
字符串更改为 Don’t do it in MySQL.
如果我从 MySQL 中读取值并再次保存,则得到 不要这样做
它只发生在一个 Windows server 2016 with .net 4.62,它在其他 Windows with .net 4.62 和 OSX with Mono 上正常工作。
ServiceStack 库版本为“4.5.0”; MySQL版本为5.6.23;数据库 table 和列字符集是 UTF-8。
可能是某处编码转义错误,反复出现。我最近从 .net 4.5 升级到 4.62。
我无法调试它:它在开发 MAC 和测试 Windows 上工作;只在生产环境失败了
问题已解决:
它来自 MySQL 连接字符串。我们最近添加了触发此编码问题的“ConnectionReset=True;”。
它将一个UTF-8字符串转换为Western 1252编码读取;所以 ' 将显示为 ’,依此类推
它能够在另一个 Windows 服务器上复制。
设置为false或移除后;它修复了。