mysql - ServiceStack和Ormlite保存字符串 "Don’t do it"到MySQL时的编码问题

标签 mysql .net encoding servicestack ormlite-servicestack

通过 ServiceStack 和 OrmLite 将带有字符串的对象不要这样做保存到 MySQL。

字符串在 MySQL 中更改为 Don't do it

如果我从 MySQL 读取值并再次保存,则得到Don't do it

它只发生在一台带有 .net 4.62 的 Windows Server 2016 上,它可以在其他带有 .net 4.62 的 Windows 和带有 Mono 的 OSX 上正常工作。

ServiceStack库版本是“4.5.0”; MySQL版本为5.6.23;数据库表和列的字符集均为UTF-8。

可能在某个地方进行了错误的编码转义并一次又一次地重复。我最近从 .net 4.5 升级到 4.62。

我无法调试它:它可以用于开发MAC,并测试Windows;仅在生产环境中失败。

最佳答案

问题已解决:

它来自 MySQL 连接字符串。我们最近添加了触发此编码问题的“ConnectionReset=True;”。

它将转换 UTF-8 字符串以将其读取为 Western 1252 编码;因此 ’ 将显示为 ââ‚â„„,依此类推

它能够在另一台 Windows 服务器上重现。

设置为 false 或删除后;已修复。

关于mysql - ServiceStack和Ormlite保存字符串 "Don’t do it"到MySQL时的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44665319/

相关文章:

带有外部缓存提供程序的 ASP.NET MVC OutputCacheAttribute

php - Laravel 删除查询生成器

php - 如何在 Yii2 中获取同一查询中不同列的总和

c# - 如何使用 C# 在按钮单击事件的文本框中设置光标位置?

c# - 如何保存控制台应用程序的输出

c# - ProtectedData.Protect 间歇性故障

php - 阿拉伯字符显示为问号

c# - TextBox 在 '\0' 字符处截断字符串

mysql - MariaDB描述命令错误

mysql - 查找字符串中最后一个单词的 SQL 语句