ascii代码图表说“ü”为129(十进制)。 但是,当我做一个跟踪(“ü”.charCodeAt(0))...我得到的答案是252 - 这显然是错误的。 似乎String.charCodeAt()仅适用于0-127。 如何在范围128-255的char和charcode值之间进行转换?
答案 0 :(得分:0)
由于有多个字符集被称为“扩展ASCII”,因此对该术语没有多大意义。 ASCII本身很少使用。
正如您所发现的,了解您正在使用的字符集和编码非常重要。虽然有些库灵活地适应“平台默认”,但程序通常不是这样编写的,如果它们跨系统读取或写入数据,则灵活性没有实际意义。
没有文字,只有编码文字。当您传递某人文本时,如果您不将编码作为元数据提供,则会导致数据丢失。
ActionScript字符串是Unicode / UTF-16代码单元的序列。见charCodeAt()。与大多数字符集不同,Unicode有几种编码方式; UTF-16是其中两个。 (整数存储大端或小端,因此是UTF-16代码单元.UTF-16表示UTF-16BE或UTF-16LE,取决于平台,但通过在字符串中使用BOM,数据本身可以指定字节顺序并指示使用哪种Unicode编码。)
ü存储为一个UTF-16代码单元,其值为252.请参阅Unicode Character 'LATIN SMALL LETTER U WITH DIAERESIS' (U+00FC)或UnicodeData.txt。