var original = 'string with guillemets (standard quotation marks in Russia) « and »'; // do something to convert the original string to applicable characters var entities = ...; // insert the resulting string to the DOM var textNode = document.createTextNode(entities);Найденное решение [2] видимо очень известно во всем интернете. Однако это решение нам показалось не оптимально - довольно громоздкий код, который циклически перебирает и заменяет программно заданный набор сущностей. И этот код не использует внутренние возможности самого браузера - ведь браузер делает это автоматически. Но решение было найдено [3]. Этот код полностью нас удовлетворял - он очень мал, использует встроенные возможности и не содержит жестко заданного набора конвертируемых сущностей. Параллельно мы нашли решение для обратной задачи - перевод символов в их сущности [4].
В дальнейшем мы адаптировали оба решения в единый класс Entity. Мы обратили внимание на тот факт, что при переводе "двойных" и 'одинарных' кавычек они не преобразуются в свои сущности. Это не столь критично, но мы посчитали, что этот "недостаток" должен быть исправлен и добавили немного "ручной" работы.
Полное решение с комментариями можно найти по этой ссылке. Здесь можно посмотреть как это работает:
Классно! Люблю такие простые (но далеко не всегда с первого взгляда очевидные) решения!
ReplyDeleteЕсли быть точным, я всего лишь аккумулировал найденное в сети.
ReplyDelete