为什么Unicode存储在句点之间的句点?

时间:2015-01-13 18:31:30

标签: unicode disassembly period

所以,现在我正在用Java制作一个小包装阅读器。 所有unicode字符串都有句点(或者至少是它们在十六进制编辑器中的显示方式)所以当我读取它们时,我需要转到偏移量并读取分配的内存以获取该信息。比如,如果它是来自Xbox 360文件的游戏名称,我需要读取80个字节并从中删除'。'以获得可读字符串。

那么为什么unicode会像这样存储在文件中?它是表示它是Unicode还是分配填充或什么?

我不确定我的问题是否有效,我一直都在想。 感谢。

1 个答案:

答案 0 :(得分:4)

创建一个包含" A"的文件在记事本中,将其保存为Unicode,Windows将使用UTF-16(LE)编码来执行此操作;这使用2个字节来存储字符:0x41 0x00

当您在十六进制编辑器中查看此文件时(它不知道任何内容,也不关心文本编码)0x41可以显示为A,但00映射到无字符,所以a显示.(或等效的)以告知您那里有一个字节。