【问题标题】:JavaScript: bookmarklet to show UTF-8 characters correctlyJavaScript:用于正确显示 UTF-8 字符的小书签
【发布时间】:2013-03-26 02:21:15
【问题描述】:

我正在阅读一些无法正确显示某些 UTF-8 字符的页面。 例如,this page 显示 而不是 破折号 (–)

其他:

显示 ' 而不是 '

显示 ~ 而不是 '(请参阅 this page

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

【问题讨论】:

    标签: javascript utf-8 bookmarklet


    【解决方案1】:

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

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

    【讨论】:

    • 也许你不能改变编码,但你可以简单地替换文本。
    【解决方案2】:

    我找到了解决方案,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("„","„");
    

    太棒了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多