9

バイトシーケンスc382c2bfを含むテキストデータのソースがあります。文脈上、それは大文字のギリシャのファイ記号(Φ)であると思われます。

とにかく、どのエンコーディングが使用されているのかわかりません。このデータをUnicodeを期待するデータベースに処理するPythonスクリプトを作成していますが、この特定のデータシーケンスで例外がスローされます。

それを処理する方法について何か提案はありますか?

4

5 に答える 5

18

UTF-8として解釈され、c382は「Â」U+ 00C2、c2bfは「¿」U+ 00BFです。これはあまり意味がありませんが、技術的に有効なUTF-8データであるため、文字として報告しないでください。レベルのデータエラー。UTF-16として解釈され、それはハングル音節文字であり、エンディアンに応じてCJK統合漢字である可能性がありますが、正式には有効なデータですが、おそらく意図されたものではありません。

これは二重変換の結果のように聞こえますが、知識に基づいた推測を行うことは困難です。Φを表す場合、UTF-16形式は03A6またはA603であり、UTF-8形式はCE A6であり、実際のデータとは実際には似ていません。データの出所に関する情報は、どのトランスコーディングが発生したかを推測するのに役立つ場合があります。

于 2012-07-18T17:13:25.940 に答える
11

それはおそらくÑキャラクターからの二重の変換です。

ÑUTF-8の文字は次のとおり0xc391です。

LATIN-1からUTF-8に、ÑすでにUTF-8でエンコードされている文字を変換しようとすると、次のようになります0xc382c2bf

なんで?

  1. 0xc382LATIN-1文字からのUTF-8変換です(チルダ付きのA) 0xc3Ã
  2. 0xc2bfLATIN-1¿から文字を変換できない場合に取得される文字です(LATIN - 1では無効な文字です)0x91
于 2013-02-08T14:56:29.930 に答える
4

c3 82 c2 bfFWIW、私はからで終わった 。コードのその部分を単純に破棄することができたので、変換については掘り下げませんでした。 これは、wordpress(php)プラグインによって処理されたhtmlメールテンプレートに含まれていると言えば十分です。

于 2014-09-16T14:47:30.407 に答える
0

理由はわかりません。しかし、おそらく風景があるかもしれません。

バイナリx0xxは0xC2x0xxに変換されます

バイナリx1xxは0xC3x0xxに変換されます

したがって、c2とc3がたくさん追加されています。

これはどこで起こりますか?ajax呼び出しのURLクエリ文字列で非ASCIIを送信すると、Flaskサーバーがこれを実行します。

于 2019-01-24T09:34:06.890 に答える
-1

$ str = mb_convert_encoding($ content、 "UTF-8"、 "UTF-16LE");を使用してutf-8に変換した後、外部utf-16ドキュメントからこの文字\ xc3\x82を受け取りました。(PHP)

元のシーケンスは0xA00x00で、コンバーターはおそらくそれをNBSPの意味に変換しました..通貨番号の千単位の区切り文字でした。nbspは\xc2\ xa0であるため、現在、次のように数千の削除があります。

$price = str_replace(["\xc2\xa0","\xc3\x82"], '', $price);
于 2019-08-05T18:57:59.170 に答える