私は文字「ö」を持っています。 this UTF-8 tableを見ると、16進数の値がF6
であることがわかります。 Unicode tableを見ると、 "ö"はインデックスがE0
と16
であることがわかります。両方を追加すると、コードポイントの16進数がF6
になります。これはバイナリ値1111 0110
です。文字をUTF-8からISO-8859-1に手動で変換します
1)F6
からインデックスE0
と16
に移動するにはどうすればよいですか?私は結果を得ていなかったので
2)私は2バイトC3
B6
からF6
から来たのか分からない...
は、私は他の道を行くことを試みました。 "ö"はISO-8859-1で "¶"と表現されています。 UTF-8 tableには、 "Ã"に小数点以下の値があり、195
があり、 "¶"に小数点以下の桁があることがわかります。182
です。ビットに変換されたのは1100 0011 1011 0110
です。
プロセス:
tableを見て、文字 "O" のUnicodeを取得します。
E0
と16
のインデックスから計算すると、UnicodeU+00F6
が得られます。wildplasserによってポスティングされたアルゴリズムによれば、コード化されたUTF-8値
C3
とB6
を計算できます。バイナリ形式では、
195
と182
の10進数値に対応する1100 0011 1011 0110
が得られます。これらの値がISO 8859-1(1バイトのみ)と解釈された場合、「¶」となります。
PS:私はステップ2.
両方向に変換しますか?ところで、あなたはutf8からiso9959-1に変換しません。形式utf8をコードポイントのバイナリ値に変換し、8ビットで表現します。このコードポイントはlatin1と解釈する必要はありません。 – wildplasser
UTF-16を最初に使ったほうがはるかに簡単です。 UTF-8では、あなたはE0/16を持っています。これは、UTF-8アルゴリズムに従ってF6に変換されます。次に、位置F6にあるISO-8859-1テーブルでU + 00F6を検索します。 –
@wildplasser: 私が一方向を知っていれば、他の人は問題ではないはずです。私は最初の試行では望みの結果を得られなかったので、もう一度試しました(反対方向)。いいえ、私は質問を編集し、コードポイントのバイナリ値を追加しました。しかし、今私はそれをLatin1でどのように解釈できますか? @RaymondChen: [これはISO-8859-1の表](http://htmlhelp.com/reference/charset/latin1.gif)です。しかし、私は現在、2バイトの「C3」と「B6」に来る方法を知らない。 – testing