如何在Javascript中打印文字unicode字符串? [英] How to print literal unicode string in Javascript?

查看:476
本文介绍了如何在Javascript中打印文字unicode字符串?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含具有特殊unicode字符的字符串的数组:

I have an array containing strings with special unicode characters:

var a = [
    ["a", 33],  
    ["h\u016B", 44],
    ["s\u00EF", 51],
    ...
];

当我循环访问此数组时:

When I loop over this array:

for (i=0;i<a.length;i++) {
    document.write(a[i][0] + "<br />");
}

它会输出带有重音符号的字符:

It prints characters with accents:

a
hù
sô
...

我想要:

a
h\u016B
s\u00EF
...

如何在Javascript中实现? p>

How can I achieve this in Javascript?

推荐答案

这样的东西吗?

/* Creates a uppercase hex number with at least length digits from a given number */
function fixedHex(number, length){
    var str = number.toString(16).toUpperCase();
    while(str.length < length)
        str = "0" + str;
    return str;
}

/* Creates a unicode literal based on the string */    
function unicodeLiteral(str){
    var i;
    var result = "";
    for( i = 0; i < str.length; ++i){
        /* You should probably replace this by an isASCII test */
        if(str.charCodeAt(i) > 126 || str.charCodeAt(i) < 32)
            result += "\\u" + fixedHex(str.charCodeAt(i),4);
        else
            result += str[i];
    }

    return result;
}

var a = [
    ["a", 33],  
    ["h\u016B", 44],
    ["s\u00EF", 51]
];

var i;
for (i=0;i<a.length;i++) {
    document.write(unicodeLiteral(a[i][0]) + "<br />");
}



结果



Result

a
h\u016B
s\u00EF

JSFiddle

这篇关于如何在Javascript中打印文字unicode字符串?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆