2

假设有一个代码(UTF-8,带有西里尔字母)

var test = {name:'Съешь ещё этих мягких французских булок'};
console.dir(test.name);
console.dir(test);

为什么在第二种情况下的控制台(FF 25.0)中显示乱码?系统还没有插入图片,只能参考http://i.imgur.com/lzHc5aa.png查看图片

4

1 回答 1

2

这很可能是一个错误。console.dir如果读取属性,似乎只读取每个字符的最低字节:

function asciify(s){
    var i, r = [];
    for(i = 0; i < s.length; ++i){
        r.push(String.fromCharCode(s.charCodeAt(i) & 0xff));
    }
    return r.join("");
}

console.log(asciify('Съешь ещё этих мягких французских булок'));

但是,当您console.dir在字符串上使用时,它似乎使用console.log,它可以正确解释非 ASCII 符号。您应该提交错误报告。

于 2013-10-31T16:56:36.397 回答