私はユニコード文字の16進値を取り、それを整数に変換してからバイト配列に変換し、次にUTF-8文字列に変換するプログラムに取り組んでいます。たとえば、16進値E2 82 AC(€記号)が小数点で14 844 588であるという事実以外はすべて問題ありませんが、以下に示すWebページ上のコードポイント値を見ると226です130 172、これは大きな違いです。10進数の不一致へのUTF8 16進コーディング
http://utf8-chartable.de/unicode-utf8-table.pl?start=8320&number=128&names=-
あなたは小数でそれらの値を並べ替える場合、彼らは小数に進に変換していません。明らかに私はエンコードを理解していないだけでなく、私は思った。 226 130 172の代わりに、14 844 588
に
E2 82 ACマップなぜこの不一致は?
ありがとうございます。
可変長バイトシーケンスを数値として直接解釈することはできません。 0x00E282ACは確かに14844588ですが、これはただの偶然です。 – tripleee
16進数のバイトシーケンス '0xE2''0x82''xAC'は、それぞれ「226」「130」「172」の10進数です。単一の数字 '14,844,588'(あなたの質問のスペースだけであるコンマに注意)は、16進数で' 0xE282AC'です。小数は '226.130,172'ではなく' 226''''''''' '' '' '' '' '' '' '' '' '' '' '172''です。あなたは2つの異なることを比較しています。スペースであなたを混乱させています。 –