使用.NET Core服务从MySQL读取č,ć和đ

时间:2019-06-14 12:39:17

标签: mysql .net-core

我尝试了许多从MySQL数据库读取ć,ć和đ符号的选项,但没有成功。 取而代之的是:舒玛,泽顿,切韦佩奇奇,舒玛,沙克,都翁

我得到了:舒马,泽顿,伊韦普伊西,舒马,阿克,多宗。

MySQl表的排序规则是utfmb4-默认排序规则。很难从数据库中读取上述标志的相同.NET Core服务可以完美地执行插入操作。因此,只是阅读是个问题。

SO上的某些成员建议在打开与数据库的连接后执行以下“ SET character”命令应该会有所帮助,但这对我来说不是真的。

 string commColl = "SET character_set_client = 'utf8mb4'; set character_set_results = 'utf8mb4'; SET collation_connection = 'utf8mb4_general_ci'; SET NAMES UTF8;";

            MySqlCommand commCollation = new MySqlCommand(commColl, conn);

            try
            {
                conn.Open();
                commCollation.ExecuteNonQuery();

此外,我尝试将'utf8'设置也没有成功。 此外,我还将CharSet部分放入了连接字符串:

 private readonly string connString = "host=aurora-host.wert.net;user=asop;password=ooppoo;database=test;Connect Timeout=10;CharSet=utf8;";

显示创建表:

  

创建表FEEDBACK(     EntryID int(11)NOT NULL AUTO_INCREMENT,     AccessCode varchar(45)收集utf8mb4_unicode_ci默认为空,     DocumentPath varchar(255)收集utf8mb4_unicode_ci默认为空,     FreeText varchar(4000)收集utf8mb4_unicode_ci默认为空,     DateInsert日期时间默认为空,     SurveyID int(11)默认为空,     Document一滴,     DocumentExtension varchar(5)收集utf8mb4_unicode_ci默认为空,     CompanyID int(11)默认为空,     主键(EntryID)   )ENGINE = InnoDB AUTO_INCREMENT = 98 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci

1 个答案:

答案 0 :(得分:0)

所以,问题在于,检索数据的存储过程引用了另一个表中具有swedish_latin_ci排序规则的列。

utf8字符集和utf8_general_ci排序规则就足够了。