0

次のような文字列があります。

u'Thaïlande'

これは「Thailande」で、どのようにエンコードされたかはわかりませんが、「Thailande」に戻してから URL エンコードする必要があります。

文字列が既に Python 2 でエンコードされているかどうかを推測する方法はありますか?

4

1 に答える 1

3

いわゆる文字化けがあります。統計分析を使用して、UTF-8 バイトの典型的な組み合わせで異常な数の Latin-1 文字があるかどうか、またはそこに CP1252 固有の文字があるかどうかを確認できます。

あなたのためにこれを行い、モジバケが検出された場合に損傷を修復するパッケージがすでにあります: ftfy:

ftfy の目標は、Unicode 対応コードで使用するために、悪い Unicode を取り込み、良い Unicode を出力することです。

ftfy.fix_encoding() 関数は、文字化けの証拠を探し、可能であれば、文字化けを生成したプロセスを元に戻して、存在するはずのテキストを取得します。

これは不可能に聞こえますか?それは本当にそうではありません。UTF-8 は適切に設計されたエンコーディングであり、悪用されていることが明らかになり、文字化けの文字列には通常、元の文字列を復元するために必要なすべての情報が含まれています。

于 2016-10-13T09:16:57.813 に答える