在javascript中将文本转换为Unicode

时间:2012-01-18 18:54:18

标签: javascript unicode

我有以下内容:

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,为什么呢?

3 个答案:

答案 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