Как конвертировать не HTML 4 сущности для отображения? - PullRequest
1 голос
/ 07 июля 2011

У меня есть некоторые объекты, которые не стандартные , такие как ş или č

Есть ли способ преобразовать эти объекты в символы UTF-8 (č и ş в моем примере) или во что-то еще, что может быть показано на html-странице?

Я хотел бы сделать это в javascript, но если это невозможно, я могу предварительно обработать контент на стороне сервера в python.

спасибо

1 Ответ

1 голос
/ 08 июля 2011

Одним из решений будет поиск и замена этих сущностей в теле документа. Пример:

<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. В этом случае сценарий на стороне сервера будет выполнять те же действия, что и выше, но до того, как клиент получит текст, а не клиент, который сделает это позже. Выполнение этого на стороне сервера предотвратит видимое «исправление» текста после загрузки страницы.

...