2016-04-08 6 views
0

私はMySqlデータベースを持っています。その中の表はDEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ciで定義されています。しかし、テーブルのデータはミスコードされているようです。私は右のエンコーディングにテーブル内のテキストを変換するにはどうすればよいMySql JSONエンコードの問題

SELECT json_object('x', textfield) AS test FROM MyTable LIMIT 1;

+-----------------------------+ 
| test      | 
+-----------------------------+ 
| {"x": "This isn’t right"} | 
+-----------------------------+ 

答えて

0

文字化け

  • クライアントでは、あなたが持っているバイトが正しくUTF8(良い)でエンコードされています。
  • おそらくデフォルトでSET NAMES latin1(またはset_charset('latin1')または...)と接続しました。 (それはutf8だったはずです)
  • テーブルの列はCHARACTER SET utf8であってもなくてもかまいませんが、それはそうだったはずです。 (あなたはそう言っています)

クライアントは何ですか? "mysqlコマンドラインツール"(見かけ上の)の場合は、接続後にSET NAMES utf8を実行してください。

isn’tisn?tとなる場合は、my blogを参照してください。

関連する問題