web-gelistirme-sc.com

C # Mysql UTF8 Kodlama

Utf8_general_ci kodlaması olan bir mysql veritabanım var

utf-8 sayfasını kullanarak php ile aynı veritabanına bağlanıyorum ve dosya kodlaması yapıyorum ve sorun yok ama C # ile mysql bağlantısı bu gibi harflere sahipse ØºØ²Ø © 

bu gibi olması için bağlantı dizesini editit 

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

ama aynı problem.

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

Not! Utf8 küçük harf kullanın ve başarısız olacağından UTF8 büyük harf kullanmayın.

Bkz. http://www.connectionstrings.com/mysql

26
x06265616e

deneyebilir misin:

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

Düzenleme: Yeni bir fikrim var:

//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);

iyi şanslar

bu teknik hakkında daha fazla bilgi http://social.msdn.Microsoft.com/forums/en-us/csharpgeneral/thread/BF68DDD8-3D95-4478-B84A-6570A2E20AE5

5

Bunun gibi 4 baytlık karakteri desteklemek için sütun için ayarlanan "utf8mb4" karakterini kullanmanız gerekebilir: "λ ????"

Utf8 karakter kümesi, karakter başına yalnızca 1-3 baytı destekler ve bu nedenle tüm unicode karakterleri destekleyemez.

Daha fazla bilgi için http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html 'ye bakınız.

3
Bryan Legend

Bulduğum, ancak gerçekten göz atma fırsatım olmadığım bir şey burada bulunan harmanlama çizelgeleri: http://www.collation-charts.org/mysql60/

Bu, hangi karakterlerin verilen bir MySQL harmanlamasının bir parçası olduğunu gösterir, böylece veri kümeniz için en iyi seçeneği seçebilirsiniz.

0
Robert H

CHARSET büyük harf olmalı

Server=localhost;Port=3306;Database=xxx;Uid=x xx;Pwd=xxxx;CHARSET=utf8;
0
M.Shakeri

Bağlantı dizesinde karakter kümesinin ayarlanması, sunucuya gönderilen sorguların karakter grubunu belirtir. Sunucudan results 'i döndürmez.

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

İstemciden karakter kümesini belirtmeyi bulduğum bir yol, bağlantıyı açtıktan sonra bunu çalıştırmaktır.

set character_set_results='utf8';

0
Kevin Tighe

Sadece bazıları daha sonra buraya gelirse diye. 

Bir SQL dosyasını yüklemek için EF6 ile Mysql kullanarak bir Seed yöntemi oluşturmam gerekiyordu. Çalıştırdıktan sonra gibi veritabanında garip karakterler var? é, ó, á yerine 

ÇÖZÜM: Dosyamı doğru karakter grubunu kullanarak okuduğuma emin olun: UTF8 davamda. 

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

Ve sonra M.Shakeri hatırlatma: 

CHARSET = web.config dosyasındaki cxn dizesinde utf8. CHARSET'i büyük harf ve utf8 küçük harf olarak kullanmak. 

Umarım yardımcı olur. 

R.

0
Ramon Gonzalez