web-dev-qa-db-ja.com

C#Mysql UTF8エンコーディング

Utf8_general_ciエンコーディングのmysqlデータベースがあります。

私はutf-8ページとファイルエンコードを使用してphpで同じデータベースに接続していますが、問題はありませんが、mysqlとC#を接続すると、次のような文字が表示されますغزة

接続文字列を次のように編集します

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

しかし同じ問題。

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

注意!これが失敗するため、大文字のUTF8ではなく小文字のutf8を使用してください。

http://www.connectionstrings.com/mysql を参照してください

32
x06265616e

あなたは試すことができますか:

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

5
Anthony

次のような4バイト文字をサポートするために、列に「utf8mb4」文字セットを使用する必要がある場合があります:「λ????」

Utf8文字セットは1文字あたり1〜3バイトしかサポートしないため、すべてのUnicode文字をサポートすることはできません。

詳細は http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-utf8mb4.html を参照してください。

3
Bryan Legend

CHARSETは大文字にする必要があります

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

私が見つけたものの、実際に閲覧する機会がなかったものは、ここにある照合チャートです: http://www.collat​​ion-charts.org/mysql60/

これにより、特定のMySQL照合に含まれる文字が表示されるため、データセットに最適なオプションを選択できます。

0
Robert H

接続文字列に文字セットを設定すると、サーバーに送信されるクエリの文字セットを参照します。サーバーから返されるresultsには影響しません。

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

クライアントから文字セットを指定する方法の1つは、接続を開いた後にこれを実行することです。

set character_set_results='utf8';

0
Kevin Tighe

後で来る人がいる場合に備えて。

SQLファイルをロードするには、EF6でMysqlを使用してSeedメソッドを作成する必要がありました。実行後、データベースに奇妙な文字が表示されました?é、ó、áを置き換える

解決策:正しい文字セットを使用してファイルを読み取るようにします。私の場合はUTF8です。

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

そして、M.Shakeriのリマインダー:

CHARSET = utf8(web.configのcxn文字列)。 CHARSETを大文字、utf8を小文字として使用します。

それが役に立てば幸い。

R.

0
Ramon Gonzalez