mysql - MySql Backup.NET 编码问题
问题描述
我可以在 C# Azure 函数中使用 MySqlBackup.NET 成功转储和恢复 mysql DB
string pathTradeRecFile = Path.Combine(Path.GetTempPath(), $"backup_{env}" + ".sql");
conStr = conStrSource;
using (MySqlConnection conn = new MySqlConnection(conStr))
{
using (MySqlCommand cmd = new MySqlCommand())
{
using (MySqlBackup mb = new MySqlBackup(cmd))
{
cmd.Connection = conn;
conn.Open();
mb.ExportInfo.TextEncoding = System.Text.Encoding.UTF8;
mb.ExportToFile(pathTradeRecFile);
conn.Close();
}
}
}
//RESTORE
conStr = conStrDestination;
using (MySqlConnection conn = new MySqlConnection(conStr))
{
using (MySqlCommand cmd = new MySqlCommand())
{
using (MySqlBackup mb = new MySqlBackup(cmd))
{
cmd.Connection = conn;
conn.Open();
mb.ImportFromFile(pathTradeRecFile);
conn.Close();
}
}
}
但是,目标数据库现在存在一些 VarChar 值的编码问题,并且名称会使用这些奇怪的字符进行转换。
Green Apple ’Q — Product
Appleseed — Product
Micro Sero’Q — Product
我缺少一个简单的 TextEncoding 设置吗?我已经尝试了 System.Text.Encoding 的整个枚举,但每次都得到相同的结果。在我的 CLI 转储中,我使用
--column-statistics=0
.NET 中是否有与此选项等效的选项?
解决方案
推荐阅读
- symfony - LexikjwtAuthenticator Symfony 定义身份验证路由
- bash - 如何从 ubuntu 机器安全地将数据传输到外部硬盘驱动器?
- php - 在 PHP header() vs setcookie() 中设置 cookie 过期时间的问题
- google-apps-script - 如何通过 GOOGLE APPS SCRIPT 自动将多个谷歌表格中的数据合并到另一个谷歌表格
- mysql - 如果这一天(今天的日期)条目将被计算在内,那么明天的日期将再次以 0 开始
- javascript - 从另一个 js 文件访问和操作自定义元素
- kubernetes - 如何处理 RWO 卷服务的滚动更新部署策略?
- java - 使用 Informix 数据库调用 Spring Boot Rest API 时出现“java.sql.SQLException:Transactions not supported”错误
- c# - 接口变体返回类型
- python - Python3 UnboundLocalError:赋值前引用的局部变量