【发布时间】:2013-03-26 02:21:15
【问题描述】:
我正在阅读一些无法正确显示某些 UTF-8 字符的页面。 例如,this page 显示 – 而不是 破折号 (–)。
其他:
显示 ' 而不是 '
显示 ~ 而不是 '(请参阅 this page)
是否可以在书签中解决此问题? 如果是,那么如何?
【问题讨论】:
标签: javascript utf-8 bookmarklet
我正在阅读一些无法正确显示某些 UTF-8 字符的页面。 例如,this page 显示 – 而不是 破折号 (–)。
其他:
显示 ' 而不是 '
显示 ~ 而不是 '(请参阅 this page)
是否可以在书签中解决此问题? 如果是,那么如何?
【问题讨论】:
标签: javascript utf-8 bookmarklet
使用书签,不。不幸的是,大多数浏览器不提供使用 javascript 更改页面编码的方法。您可以尝试添加元标记来影响编码,但这可能不适用于所有浏览器(谷歌“元标记编码”)。这主要是服务器问题 - Web 服务器为页面发送了错误的编码标头。
但是,如果您想要一个可以从浏览器调用的菜单项来更改编码(这基本上就是一个小书签),您可以简单地调用编码菜单并将其更改为 UTF-8。在 IE8 上是 Page->Encoding->UTF8,在 Chrome 上是 Menu->Tools->Encoding->UTF8。谷歌搜索其他浏览器。
【讨论】:
我找到了解决方案,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("„","„");
太棒了!
【讨论】: