Unicode 5与Unicode 2(ECMAScript 4)有何不同?

Unicode 5与Unicode 2(ECMAScript 4)有何不同?,unicode,character-encoding,utf,ecmascript-4,Unicode,Character Encoding,Utf,Ecmascript 4,请原谅,我真的需要知道合并的Unicode版本(5)在ECMAScript 4中是如何工作的。我只需要知道它是如何编码或解码的,或者ECMAScript 4使用哪种编码。我说的是字符串的字符码(我想是代码点)的编码 建议:“超级通行证”在这里的意思是“大于”,或者更进一步,例如。我认为它在英语中是有效的 我基本上认为它是UTF-16,但在我的测试中它通过了U+10FFFF。我使用ECMAScript 4获得的最大字符代码(没有例外)是U+FFFFFF,除了当我使用String.fromCharC

请原谅,我真的需要知道合并的Unicode版本(5)在ECMAScript 4中是如何工作的。我只需要知道它是如何编码或解码的,或者ECMAScript 4使用哪种编码。我说的是字符串的字符码(我想是代码点)的编码

建议:“超级通行证”在这里的意思是“大于”,或者更进一步,例如。我认为它在英语中是有效的

我基本上认为它是UTF-16,但在我的测试中它通过了U+10FFFF。我使用ECMAScript 4获得的最大字符代码(没有例外)是U+FFFFFF,除了当我使用
String.fromCharCode()
对这个字符代码进行编码时,它会产生U+1FFFF(
\U{…}
最多生成
0xFFFFFF
不同的字符,但
String.fromCharCode()
最多生成
0x1FFFF
不同字符)。在ECMAScript 6代码点中,我能得到的最大值是U+10FFFF,这是一个很小的差异,而且由于它使用UCS-2(至少在我的浏览器Chrome中是这样),ECMAScript 6生成更多的代码单元(一个代码单元=2字节),我猜ECMAScript 6在使用UCS-2编码代码点时有一个小错误(虽然这不是错误,只是一个小错误),如果你想知道的话,就查我的

0xFFFFFF
是最大字符代码(或代码点…?)。为什么我认为它是ECMAScript 4中的字符代码?可能是因为没有像ECMAScript 6中那样的
String#codepoint
String#fromCodePoint
,而且它确实从UCS-2中消失了。首先,让我向您展示一些使用ECMAScript 4的测试:

(是的,ECMAScript 4从未存在过,但草稿(包括用于评估ECMAScript 4.的未完成虚拟机)已关闭,但仍处于打开状态,因此我在a中制作了一个小副本)

//十进制:16777215
常数ch=0xffffff;
常量chString='\u{ffffffff}';
//超级传递最大字符代码(或代码点),然后
//抛出了一个异常。
“\u{1000000}”;
//Ultra也会传递它,但无论如何都会返回“\u{charCode%1000000}”。
String.fromCharCode(ch+1);
//对。
chString.charCodeAt(0);//代码:16777215
//我没想到会这样\/
String.fromCharCode(ch);//还给我'\u{1ffff}'。
//Unicode字符代码(我认为这是代码点)总是
//相当于字符串中的一个字符。
chString.length;//1.
String.fromCharCode(ch).length;//1.

ECMAScript 4概述没有进一步讨论这一点,它只提到它包含了Unicode 5,但没有提到编码。本例中采用了哪种编码?通过上面的例子,我也很想知道为什么
String.fromCharCode(charCode)
\u{…}
Unicode代码转义不同。

我很喜欢“UltraPass”这个词,但它在英语中并不存在。我猜它的意思是“继续过去”?ECMAScript 4?所以,显而易见的问题是。。。为什么你需要知道一个废弃的语言标准的部分实现是如何处理字符串编码的呢?哦,这肯定与Unicode 5无关;这只是添加了一些新字符,编程语言需要知道这些字符才能回答诸如“这是数字吗?”之类的问题。UTF-16是用Unicode 2.0添加的,此后其工作方式一直没有改变。请阅读UTF-16,或者在线搜索。这些信息很容易找到。但简而言之,是的,最高的Unicode代码点将被分配为0x1FFFF,在UTF-16中表示为两个16位单元,0xDBFF和0xDFFF。