繁体   English   中英

C#Mysql UTF8编码

[英]C# Mysql UTF8 Encoding

我有一个使用utf8_general_ci编码的mysql数据库,

我正在使用utf-8页面和文件编码使用php连接到同一个数据库,没有问题,但是当使用C#连接mysql时我有这样的字母غزة

我编辑它的连接字符串是这样的

server=localhost;password=root;User Id=root;Persist Security Info=True;database=mydatabase;Character Set=utf8

但是同样的问题。

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword; CharSet=utf8;

注意! 使用小写值utf8而不是大写UTF8,因为这将失败。

http://www.connectionstrings.com/mysql

你可以尝试:

Server=localhost;Port=3306;Database=xxx;Uid=x xx;Pwd=xxxx;charset=utf8;"

编辑:我有一个新主意:

//To encode a string to UTF8 encoding
string source = "hello world";
byte [] UTF8encodes = UTF8Encoding.UTF8.GetBytes(source);

//get the string from UTF8 encoding
string plainText = UTF8Encoding.UTF8.GetString(UTF8encodes);

祝好运

有关此技术的更多信息http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/BF68DDD8-3D95-4478-B84A-6570A2E20AE5

您可能需要为该列使用“ utf8mb4”字符集,以支持如下所示的4个字节的字符:“ λ𝛌”

utf8字符集每个字符仅支持1-3个字节,因此不能支持所有unicode字符。

有关更多详细信息,请参见http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html

CHARSET应该为大写

Server=localhost;Port=3306;Database=xxx;Uid=x xx;Pwd=xxxx;CHARSET=utf8;

我发现但没有机会真正浏览的一件事是此处提供的整理表: http : //www.collat​​ion-charts.org/mysql60/

这将向您显示哪些字符是给定MySQL归类的一部分,因此您可以为数据集选择最佳选项。

以防万一稍后再来。

我需要使用Mysql和EF6创建Seed方法,以加载SQL文件。 运行后,我在数据库上得到了奇怪的字符? 替换é,ó,á

解决方案:确保我使用正确的字符集:案例中的UTF8读取文件。

     var path = System.AppDomain.CurrentDomain.BaseDirectory;
     var sql = System.IO.File.ReadAllText(path + "../../Migrations/SeedData/scripts/sectores.sql", Encoding.UTF8);

然后,Shakeri先生提醒:

web.config中cxn字符串上的CHARSET = utf8。 使用CHARSET作为大写字母,并使用utf8小写字母。

希望能帮助到你。

R.

在连接字符串中设置字符集是指发送到服务器的查询的字符集。 它不会影响从服务器返回的结果

https://dev.mysql.com/doc/connectors/zh/connector-net-connection-options.html

我发现从客户端指定字符集的一种方法是在打开连接后运行它。

set character_set_results='utf8';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM