2017-07-17 6 views
1

で次のように保存されているなぜ私は.exeファイルを開いて、私は、文字列「プレミアム」は、次のよう文字列がPEファイル

50 00 72 00 65 00 6D 00 69 00 75 00に格納されていたました6D 00

各文字に「00」が付加されている理由とその使用方法はわかりません。

ありがとう、

答えて

1

おそらく、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値を使用します。

+0

感謝します、ありがとうございます! – sudo

+0

「\ xff \ xfe \ x00r \ x00e \ x00m \ x00i \ x00u \ x00m \ x00」が「プレミアム」なんて理解できません。 – CIsForCookies