テストSELECT:私のMySQL DBがlatin1エンコーディングでアラビア文字を正しく保存できるのはなぜですか?
MySQL [chuangwai]> select ar_detail from items limit 1\G;
*************************** 1. row ***************************
ar_detail: {"طراز": "فساتين قفطان", "المواد": "الشيفون"}
、あなたが正しく表示アラビア語の文字を見ることができます。
その後、私はエンコーディングをチェックしてください。別のSO postで
MySQL [chuangwai]> select * from information_schema.SCHEMATA\G;
*************************** 2. row ***************************
CATALOG_NAME: def
SCHEMA_NAME: chuangwai
DEFAULT_CHARACTER_SET_NAME: latin1
DEFAULT_COLLATION_NAME: latin1_swedish_ci
SQL_PATH: NULL
、BalusCは言った:
を使用すると、中国語、日本語、 ヘブライ語、キリル文字、などの非ラテン文字を格納しようとしている場合等Latin1エンコーディングを使用して、彼らは mojibakeとして終了します。
ご覧のとおり、私の場合ではありません。誰も私になぜlatin1
エンコーディングでアラビア文字を保存できるのか説明してくれませんか? DBのエンコーディングをlatin1
からuft8
に切り替える必要がありますか?
EDIT:さて、私はちょうどitems
のエンコーディングがuft8
で見つけ...
MySQL [chuangwai]> SELECT TABLE_COLLATION
-> FROM INFORMATION_SCHEMA.TABLES
-> WHERE TABLE_NAME = 'items';
+-----------------+
| TABLE_COLLATION |
+-----------------+
| utf8_unicode_ci |
+-----------------+