为什么Firefox中的console.dir()会给出以下结果(UTF-8)?

时间:2013-10-31 16:42:09

标签: javascript firefox utf-8 console

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

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

为什么第二种情况下控制台(FF 25.0)显示乱码? 系统仍然不插入图片,因此只能通过参考http://i.imgur.com/lzHc5aa.png

查看图像

1 个答案:

答案 0 :(得分: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符号。您应该提交错误报告。