web-dev-qa-db-ja.com

オンラインツールが正しく修正する、この破損した中国語のテキストのエンコーディングをどのように見つけることができますか?

簡体字中国語のテキストがあります。UTF-8として読み取ると、´ÓºÜ¾ÃÒÔÇ°¿ªÊ¼で始まります。これは、オンラインツール MandarinTools破損した中国語の電子メールの修復)の最初の検索結果です。 )正しい从很久以前开始を修正しましたが、それがどのように修正されたかは明確ではありません。オンラインツールと16進エディタを使用すると、各文字が固定長の32ビットとしてエンコードされていることがわかります。

c2b4 c393 从
c2ba c39c 很
c2be c383 久
c392 c394 以
c387 c2b0 前
c2bf c2aa 开
c38a c2bc 始

これは、文字がc2 **-c3 **の範囲の2つの16ビットワードとしてエンコードされていることも示しています。 UTF-16では、これらの文字の最初の16ビットワードは常に0です。 UTF-8はこれらに1文字あたり24ビットのみを使用し、Codepage936はここでは1文字あたり16ビットのみを使用します。正しいエンコーディング変換を決定するためにどの方法を使用できますか?

utf-8表現:

e4bb 8e 从
e5be 88 很
e4b9 85 久
e4bb a5 以
e589 8d 前
e5bc 80 开
e5a7 8b 始

cp936表現:

b4d3 从
badc 很
bec3 久
d2d4 以
c7b0 前
bfaa 开
cabc 始
3
rubystallion

破損したテキスト´ÓºÜ¾ÃÒÔÇ°¿ªÊ¼の長さは14文字です。正しい簡体字中国語のテキスト从很久以前开始は7文字の長さであるため、各簡体字中国語の文字が破損したテキストの2文字に対応している可能性があることをすぐに示唆します。

破損したテキストの文字は、UTF-16(およびOPに示されているcp936)で次の16進数に相当します。

´ => b4
Ó => d3
º => ba
Ü => dc
¾ => be
à => c3
Ò => d2
Ô => d4
Ç => c7
° => b0
¿ => bf
ª => aa
Ê => ca
¼ => bc

ささいなJavaプログラムを使用してその翻訳を行いましたが、 同じことを実行できるオンラインサイト :があります。

simplifiedChinese

したがって、Mandarin Toolが実行する必要があるのは、最初の2つの破損した文字の16進値を組み合わせて、CP936を使用して最初の簡体字中国語文字を取得することです。

´ + Ó => b4 + d3 => b4d3 => 从
º + Ü => ba + dc => badc => 很
¾ + Ã => be + c3 => bec3 => 久
Ò + Ô => d2 + d4 => d2d4 => 以
Ç + ° => c7 + b0 => c7b0 => 前
¿ + ª => bf + aa => bfaa => 开
Ê + ¼ => ca + bc => cabc => 始 

おそらく、Mandarin Toolは、破損したテキストの変換が実際に有効な簡体字中国語テキストになることを確認します。

簡体字中国語の各cp936値は、そのUnicodeコードポイントにマップできます 。たとえば、開始=0xB4D3=コードポイント0x4ECE。そして、Unicodeコードポイントを取得したら、任意のエンコーディング(cp936、GB 18030、UTF-16など)に変換できます。

あなたの質問で私が不明確な点の1つは、各簡体字中国語文字の32ビット表現を示す最初のリストです(例:c2b4 c393 从)。文字のコードポイント(たとえば、の0x4ECE)とその32ビット表現は同じものであるため、これは正しくありません。それとも私は何かを誤解していますか?

1
skomisa