有没有更简单的方法将int转换为unicode?

时间:2011-05-28 22:53:20

标签: javascript unicode

我目前正在我的javascript中进行大转换语句转换

            case 176: char = '\u00B0'; break;
            case 177: char = '\u00B1'; break;
            case 178: char = '\u00B2'; break;
            case 179: char = '\u00B3'; break;
            case 180: char = '\u00B4'; break;

3 个答案:

答案 0 :(得分:7)

如果您的变量名为intVar,则可以使用...

var stringVar = String.fromCharCode(intVar);

...获取unicode角色。

答案 1 :(得分:4)

JavaScript uses UCS-2 internally.

因此,String.fromCharCode(intVar)不适用于补充Unicode字符。例如,如果intVar1195580x1D306,则为''字符)。

如果要基于非BMP Unicode代码点创建字符串,可以使用Punycode.js的实用程序函数在UCS-2字符串和UTF-16代码点之间进行转换:

// `String.fromCharCode` replacement that doesn’t make you enter the surrogate halves separately
punycode.ucs2.encode([0x1d306]); // ''
punycode.ucs2.encode([119558]); // ''
punycode.ucs2.encode([97, 98, 99]); // 'abc'

答案 2 :(得分:2)

您可以使用String.fromCharCode(i)。请注意,参数应为UTF-16编码值。有关详细信息,请参阅ECMA-262第15.5.3.2节。