2015-04-01 59 views
0

ascii代码图表说“ü”在129(十进制)。 但是当我做一个跟踪(“ü”.charCodeAt(0))...我得到的答案是252 - 这显然是错误的。 似乎String.charCodeAt()只适用于0-127。 如何在字符和charcode值之间转换范围128-255?如何从扩展ascii号码获得一个字符

+1

ASCII不超过127.存在大量的标准来编码高位。 – teppic 2015-04-01 17:37:01

+0

你能否在actionscript中提供一个简单的例子。我认为这是一两行代码? – Skyler 2015-04-01 18:20:08

回答

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