sql >> データベース >  >> RDS >> Mysql

MySQLデータベースのUTF-8文字列が構成変更後に混乱しました

    C3 83 C6 92 C3 82 C2 AA
    
    C3 3F C2 AA
    

    これは、バイトのシーケンスをUTF-8として扱い、それをISO-8859-1としてエンコードした場合に得られるものです。 3F ? 、UTF-8 C6 92のため、置換文字として含まれています U +0192ƒです これはISO-8859-1には存在しません。ただし、ISO-8859-1に非常によく似たエンコーディングであるWindowsコードページ1252WesternEuropeanには存在します。そこでは、バイト0x83です。

    C3 83 C2 AA
    

    UTF-8バイトとして処理してcp1252にエンコードする別のラウンドを実行すると、次のようになります。

    C3 AA
    

    これは、最後に、êのUTF-8です。 。

    非XMLHTMLページをISO-8859-1として明示的に提供する場合でも、厄介な歴史的理由により、ブラウザは実際にはcp1252エンコーディングを使用することに注意してください。

    残念ながら、MySQLにはcp1252エンコーディングがありません。 latin1 (正しく)ISO-8859-1です。したがって、latin1としてダンプしてからutf8(2回)としてリロードすることによってデータを修正することはできません。スクリプトは、いずれかとして保存できるテキストエディタで処理する必要があります(または、Python file(path, 'rb').read().decode('utf-8').encode('cp1252').decode('utf-8').encode('cp1252')



    1. JetShowPlan:入門書

    2. RubyOnRails用のMySQLGem

    3. テーブルの開始日と終了日からのPostgresのGenerate_series

    4. Oracle 11gの選択クエリにオフセットを追加するにはどうすればよいですか?