首页 > 解决方案 > 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 中是否有与此选项等效的选项?

标签: mysql.netbackup

解决方案


推荐阅读