繁体   English   中英

如何转换不显示 HTML 4 个实体?

[英]How to convert not HTML 4 entities to be shown?

我有一些不是标准的实体,比如ş č

有没有办法将这些实体转换为 UTF-8 字符(在我的示例中为čş )或可以在 html 页面中显示的其他内容?

我想在 javascript 中进行,但如果不可能,我可以在 python 中预处理内容服务器端。

谢谢

一种解决方案是对文档正文中的这些实体进行正则表达式搜索和替换。 例子:

<html>
<head>
<script language="javascript">

window.onload = function(){
    var entities = [{entity:"scedil", char:"č"},
                    {entity:"ccaron", char:"ş"}]; // array of entities to replace

    for (var i in entities){
        var regex = new RegExp("(\&amp;|\&)"+entities[i].entity+";", "ig");
        document.body.innerHTML = document.body.innerHTML.replace(regex, entities[i].char);
    }
}

</script>
</head>
<body>
These entities will be replaced: &scedil; and &ccaron;
</body>

但是,最好用适当的 HTML 实体替换字符。 这些将在所有标准浏览器上正确显示。 例如:

...
var entities = [{entity:"scedil", char:"&#269;"},
                {entity:"ccaron", char:"&#351;"}]; // array of entities to replace
...

但是,在我看来,最好在服务器端而不是在 JavaScript 中执行此操作。 在这种情况下,服务器端脚本将有效地执行与上述相同的操作,但在客户端收到文本之前而不是客户端在之后执行。 在服务器端这样做可以避免在页面加载后文本被明显“固定”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM