sql >> データベース >  >> Database Tools >> phpMyAdmin

データMySQLをKurdishフォントで保存しますか?

    何が起こったのか:

    • utf8でエンコードされたデータがあります(良い)
    • SET NAMES latin1 有効でした(デフォルトですが間違っています)
    • 列が宣言されましたCHARACTER SET latin1 (デフォルトですが間違っています)

    INSERTedすると データは、アラビア語(クルド語/ペルシア語など)の文字の値を持たないlatin1に変換されたため、質問マークで置き換えられました。

    治療法(将来のINSERTs ):

    • utf8でエンコードされたデータ(良好)
    • mysqli_set_charset('utf8') (または、クライアントがCHARACTER SETを確立するために必要なものは何でも )
    • 列やテーブルのデフォルトがCHARACTER SET utf8であることを確認します
    • Webページに表示している場合は、<meta...utf8> 上部近くにある必要があります。

    上記の説明は、CHARACTER SETに関するものです。 、文字のエンコーディング。 COLLATIONのヒントをご覧ください 、比較と並べ替えに使用されます。

    データが正しく保存されていることを再確認するには、SELECT col, HEX(col)...を実行します。 。
    ه‌رچوون 戻ってくるはずですD987E2808CD8B1DA86D988D988D986
    utf8のアラビア文字の16進数は、D8xxまたはD9xxです。

    utf8mb4 utf8と同じように機能します;どちらもアラビア語で機能します。)

    悪いニュース:挿入されて「???」に変換されたデータ回復できません。



    1. 同じIDを持つ行のグループを別のテーブルに転置する

    2. クエリの更新PHPMySQL

    3. クエリ統計はクエリ時間の99%を占めています

    4. GUIDをvarchar(32)に変換します