4

ラテン文字または日本語文字を含むことができるいくつかのvarcharフィールドを持つMySQLデータベースがあります。日本語の文字を含むエントリがありますが、問題ありません。ただし、C#コードから、を使用すると、句MySqlConnectionに日本語の文字を使用して正しい結果を取得できませんでした。WHERE日本語の文字を疑問符のように比較しているようです。たとえば、を含むクエリは、 「未来警」を含むWHERE series_title LIKE '%未来警%'値を返しませんseries_titleが、代わりseries_titleに「???」を含むすべてのエントリを返します。

いくつかの詳細:

  • series_titlevarchar(150)照合付きですutf8_general_ci
  • ConnectionStringforにはMySqlConnectionkvペアが含まれますCharSet=utf8_general_ci
  • データベースには日本語の文字が含まれており、C#クライアントに返すことができます-日本語の文字がデータベースに送信されている場合にのみ問題が発生します
4

2 に答える 2

4

charset=utf8接続文字列に追加してみてください:

server=server;uid=my_user;password=pass;database=db;charset=utf8;

編集:

接続後にこのSQLを実行してみてください。

SET NAMES utf8

于 2013-03-15T02:31:36.780 に答える
0

私はあなたのデータが正しいエンコーディングを使用して保存されていることを確認します。日本語の場合は、eucjpを試してみることをお勧めします。ここで、文字エンコードについてこれまで知りたかった以上のことを知ることができます。BOMも必要なようです。幸運を祈ります。どうやって乗るか教えてください。

于 2013-03-15T03:14:12.080 に答える