で次のように保存されているなぜ私は.exeファイルを開いて、私は、文字列「プレミアム」は、次のよう文字列がPEファイル
50 00 72 00 65 00 6D 00 69 00 75 00に格納されていたました6D 00
各文字に「00」が付加されている理由とその使用方法はわかりません。
ありがとう、
で次のように保存されているなぜ私は.exeファイルを開いて、私は、文字列「プレミアム」は、次のよう文字列がPEファイル
50 00 72 00 65 00 6D 00 69 00 75 00に格納されていたました6D 00
各文字に「00」が付加されている理由とその使用方法はわかりません。
ありがとう、
おそらく、Unicode文字列のUTF-16エンコードです。ここではPythonを使った例です:
>>> u"Premium".encode("utf16")
'\xff\xfeP\x00r\x00e\x00m\x00i\x00u\x00m\x00'
# ^^^^^^^
バイトマーカーの後エンディアンを示すために、あなたは、文字とNULLバイトを交互に見ることができます。
\xff\xfe
はバイトオーダーマーカーです。各16ビット値の下位バイトが最初に来ることを示します。 (上位バイトが最初に来た場合、バイトマーカーは\xfe\xff
になりますが、どちらのマーカーが意味するかは特に意味がありません)。
各文字は16ビット値としてエンコードされます。多くの値について、UTF-16エンコーディングは、Unicodeコードポイントの単純な符号なし16ビット表現です。具体的には、8ビットのASCII値は、単に上位バイトとしてヌルバイトを使用し、下位バイトとしてそのASCII値を使用します。
感謝します、ありがとうございます! – sudo
「\ xff \ xfe \ x00r \ x00e \ x00m \ x00i \ x00u \ x00m \ x00」が「プレミアム」なんて理解できません。 – CIsForCookies