我有以下内容:
function showUnicode()
{
var text = prompt( 'Enter the wanted text', 'Unicode' ),
unicode = 0,
ntext,
temp,
i = 0
;
// got the text now transform it in unicode
for(i; i < text.length; i++)
{
unicode += text.charCodeAt(i)
}
// now do an alert
alert( 'Here is the unicode:\n' + unicode + '\nof:\n' + text )
}
感谢你想要初始化unicode但是现在unicode变量得到了最后一个字符的Unicode,为什么呢?
答案 0 :(得分:4)
JavaScript uses UCS-2 internally.
这意味着补充Unicode符号作为两个单独的代码单元(代理一半)公开。例如,''.length == 2
,即使它只有一个Unicode字符。
因此,如果要为字符串中的每个字符获取Unicode代码点,则需要将UCS-2字符串转换为UTF-16代码点数组(其中每个代理对形成一个单一代码点)。您可以使用Punycode.js的实用程序功能:
punycode.ucs2.decode('abc'); // [97, 98, 99]
punycode.ucs2.decode(''); // [119558]
答案 1 :(得分:2)
您应该将unicode
变量初始化为某个内容,或者将char代码添加到undefined
。
答案 2 :(得分:1)
NaN =非数字
您需要将“unicode”初始化为数字类型:
var unicode = 0