javascript - 如何在 Javascript 中打印文字 unicode 字符串?

标签 javascript unicode character unicode-literals

我有一个数组,其中包含带有特殊 unicode 字符的字符串:

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

当我遍历这个数组时:

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

它打印带有重音符号的字符:

a
hù
sô
...

我想要:

a
h\u016B
s\u00EF
...

如何在 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 />");
}

结果

a
h\u016B
s\u00EF

JSFiddle

关于javascript - 如何在 Javascript 中打印文字 unicode 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10937225/

相关文章:

windows - 有没有工具可以在 Windows 上将 UTF-8 文件名批量转换回 ISO-8859-1?

ios - 不一致的 Unicode 表情符号字形/符号

svn - 如何在 Subversion 中 move/重命名包含 @ 字符的文件

使用指针反转字符串的 C 代码

javascript - 正则表达式替换特殊字符在 JS 和 Python 中给出不同的结果

string - 从字符串中删除最后一个字符。 swift 语言

java - Vaadin 版本升级到 7.4.6 导致错误 "typeerror cannot read property ' noLayout' of undefined”

javascript - 仅在读取数据库后才选择(开关的) 'case'

javascript - 在react bootstrap中编辑时在选择字段中显示变量的内容

javascript - jsVectorMap 渲染得太小并破坏了布局