JavaScript:bookmarklet正确显示UTF-8字符

时间:2013-03-25 04:58:34

标签: javascript utf-8 bookmarklet

我正在阅读一些无法正确显示某些UTF-8字符的页面。 例如this page显示 - 而不是短划线( - )

其他:

显示 而不是'

显示 而非'(请参阅this page

是否可以在书签中解决此问题? 如果是,那怎么办?

2 个答案:

答案 0 :(得分:0)

使用书签,没有。不幸的是,大多数浏览器都没有提供使用javascript更改页面编码的方法。您可以尝试添加元标记以影响编码,但这可能不适用于所有浏览器(谷歌“元标记编码”)。这主要是服务器问题 - Web服务器为页面发送了错误的编码头。

但是,如果您想要一个可以从浏览器调用的菜单项来更改编码(这基本上就是书签的目的),您只需调用编码菜单并将其更改为UTF-8即可。在IE8上它是Page->Encoding->UTF8,在Chrome上是Menu->Tools->Encoding->UTF8。谷歌围绕其他浏览器。

答案 1 :(得分:-1)

我找到了解决方案being helped by the other question

javascript:
function htmlreplace(a, b, element) {    
    if (!element) element = document.body;    
    var nodes = element.childNodes;
    for (var n=0; n<nodes.length; n++) {
        if (nodes[n].nodeType == Node.TEXT_NODE) {
            var r = new RegExp(a, 'gi');
            nodes[n].textContent = nodes[n].textContent.replace(r, b);
        } else {
            htmlreplace(a, b, nodes[n]);
        }
    }
}
htmlreplace("–","–");
htmlreplace("’","’");
htmlreplace("‘","‘");
htmlreplace("“","“");
htmlreplace("„","„");

真棒!