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

Pythonユニコード文字列をチェックして、それが*実際に*適切なUnicodeであることを確認するにはどうすればよいですか?

    バグがあります python3.xでのみ修正されたpython2.xで。実際、このバグはOS Xのiconvにもあります(ただし、glibcにはありません)。

    何が起こっているのか:

    Python 2.xは、UTF8サロゲートペア[1]を無効として認識しません(これが文字シーケンスです)

    これはすべき 必要なものはすべてあります:

    foo.decode('utf8').encode('utf8')
    

    しかし、彼らが修正していないそのバグのおかげで、サロゲートペアをキャッチしません。

    これをPython2.xで試してから、3.xで試してください:

    b'\xed\xbd\xbf'.decode('utf8')
    

    後者では(正しく)エラーがスローされます。 2.xブランチでも修正されていません。詳細については、[2]および[3]を参照してください

    [1] https://www.rfc-editor.org/rfc/ rfc3629#section-4

    [2] http://bugs.python.org/issue9133

    [3] http://bugs.python.org/issue8271#msg102209



    1. フルテキストmatch()に対して()は空のセットを返します

    2. エラー:MySQLでマスタースレーブレプリケーションを実行しているときにマスター情報構造を初期化できませんでした

    3. SQLServerトランザクションログファイルからデータを回復する方法

    4. --exclude-tableを指定したpg_dumpには、実行するバックグラウンドCOPYコマンドにこれらのテーブルが含まれていますか?