Pet*_*ter 15 c# mysql unicode utf-8
我有一个旧的MySQL数据库,编码设置为UTF-8.我正在使用Ado.Net Entity框架连接到它.
当ë喜欢字符时,我从中检索的字符串有奇怪的字符.
例如:"ë"是"Ã".
我想我可以通过从UTF8转换为UTF16来实现这一目标.
return Encoding.Unicode.GetString(
Encoding.Convert(
Encoding.UTF8,
Encoding.Unicode,
Encoding.UTF8.GetBytes(utf8)));
}
Run Code Online (Sandbox Code Playgroud)
然而,这并没有改变一件事.
我怎样才能以正确的形式从这个数据库中获取数据?
bri*_*ler 35
在ADO.NET实体框架工作中(或通常使用MySQL .NET连接器),您需要做两件事来支持UTF-8:
utf8_general_ci
或其关系之一)添加Charset=utf8;
到您的连接字符串.
"Server=localhost;Database=test;Uid=test;Pwd=test;Charset=utf8;"
Run Code Online (Sandbox Code Playgroud)我不确定,但编码可能区分大小写; 我发现那CharSet=UTF8;
对我不起作用.
即使数据库设置为 UTF8,您也必须执行以下操作才能使 Unicode 字段正常工作:
MySqlCommand cmd = new MySqlCommand("INSERT INTO EXAMPLE (someField) VALUES (N'Unicode Data')");
MySqlCommand cmd2 = new MySqlCommand("SELECT * FROM EXAMPLE WHERE someField=N'Unicode Data'");
Run Code Online (Sandbox Code Playgroud)
如果数据库配置不正确或插入数据时未使用 N 前缀,则无法获取正确的数据,因为它将被向下转换为 Latin 1/ASCII 字符集
归档时间: |
|
查看次数: |
25309 次 |
最近记录: |