0

WHERE status= 'โกดัง' " これを試してもうまくいきません (utf8 (タイ語) です。C# で何かを設定して、utf8 であることを認識させる必要がありますか、それとも 'โกดัง' を使用できません)

私は c# と mysql を使用しており、文字列 cmdText = "SELECT * FROM trackingbymail "; の前に WHERE status= 'โกดัง' を入力するまで、コードは機能します。それは働く

String str = @"server=localhost;database=asianimport;userid=tga;password=se57ui849;";


String cmdText = "SELECT * FROM trackingbymail WHERE  status=  'โกดัง' ";
                MySqlCommand cmd = new MySqlCommand(cmdText, con);
                MySqlDataReader reader = cmd.ExecuteReader();
4

2 に答える 2

2
  1. テーブルのデータベースの照合が UTF-8 照合であることを確認します (つまりutf8_general_ci、そのリレーションの 1 つ)。

  2. Charset=utf8;接続文字列に追加します。

"Server=localhost;Database=test;Uid=test;Pwd=test;Charset=utf8;"

ソース: MySQL C# テキスト エンコーディングの問題

とにかく解決できない場合は、文字列の代わりにバイトを保存できます。しかし、おそらくそれはそれを解決するための最良の方法ではありません...

UTF8Encoding utf8 = new UTF8Encoding();
string unicodeString = "โกดัง";
byte[] encodedBytes = utf8.GetBytes(unicodeString);

その後、必要に応じて文字列に戻ることができます:

Encoding.UTF8.GetString(encodedBytes);
于 2013-04-16T14:21:14.270 に答える
0

ソース コード ファイルは UTF-8 として保存する必要があります。

これを試しましたか?

于 2013-04-16T14:24:31.040 に答える