bookmarklet正确显示UTF-8字符

JavaScript: bookmarklet to show UTF-8 characters correctly

本文关键字:UTF-8 字符 显示 bookmarklet      更新时间:2023-09-26

我正在阅读一些不正确显示一些UTF-8字符的页面。例如,这个页面显示 - " 而不是连破折号(-)

:

显示一个€™

显示一个€˜(见本页)

有可能在bookmarklet中解决这个问题吗?如果是,那么是怎么做的?

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

但是,如果您想要一个可以从浏览器调用的菜单项来更改编码(这基本上就是bookmarklet),您可以简单地调用编码菜单并将其更改为UTF-8。在IE8上是Page->Encoding->UTF8,在Chrome上是Menu->Tools->Encoding->UTF8。搜索其他浏览器

在另一个问题的帮助下,我找到了解决方案:

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("„","„");

太棒了!