我有一些不属于 standard ones 的实体例如 ş
或 č
有没有办法将这些实体转换为 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("(\&|\&)"+entities[i].entity+";", "ig");
document.body.innerHTML = document.body.innerHTML.replace(regex, entities[i].char);
}
}
</script>
</head>
<body>
These entities will be replaced: ş and č
</body>
但是,最好将这些字符替换为正确的 HTML 实体。这些将在所有标准浏览器上正确显示。例如:
...
var entities = [{entity:"scedil", char:"č"},
{entity:"ccaron", char:"ş"}]; // array of entities to replace
...
但是,我认为最好在服务器端而不是在 JavaScript 中执行此操作。在这种情况下,服务器端脚本将有效地执行与上述相同的操作,但在客户端收到文本之前而不是客户端在之后执行此操作。在服务器端执行此操作可以避免页面加载后文本明显“固定”。
关于javascript - 如何转换非 HTML 4 实体来显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6616330/