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