™ преобразуется в DOMDocument XPath - PullRequest
2 голосов
/ 29 октября 2011

Если у меня есть

<p id='test'>TEST&trade;</p>

и я использую

document.getElementById('test').innerHTML;

, чтобы передать HTML в функцию php, где он извлекает все текстовые узлы, используя DOMDocument и XPath.

Когда PHP получает контент, &trade; преобразуется в ™.Я запускаю его через XPath, и текстовый узел возвращается как:

TESTâ„ ¢

Я не уверен, что идет не так, или, если есть способ исправить это, либо на стороне JavaScript, так что он проходит &trade; а не ™.

Любая помощь приветствуется.

Ответы [ 4 ]

1 голос
/ 29 октября 2011

Ваше значение, что ваша переменная передается с символом ТМ, а не с &trade;, через htmlentities() в PHP, должно позаботиться об этом.

0 голосов
/ 30 октября 2011

То, что сказал Михаил, верно;Кроме того, вы должны знать, что процессоры XML в основном необходимы для преобразования символьных сущностей (например, & tm;) в их действительные значения символов и (почти) всегда будут выводить эти символы, закодированные в некотором преобладающем наборе символов.Это требует героических мер, чтобы предотвратить это, и обычно не является «хорошей идеей».Поэтому вам следует отказаться от попыток сделать это, и я предполагаю, что вам будет лучше, если вы убедитесь, что функция, которой вы передаете HTML, должна интерпретировать его как utf-8, а не как другую кодировку (которая может быть простосистема по умолчанию).

0 голосов
/ 29 октября 2011

Вы должны быть более точным, чем говорить, что "возвращается как". Кажется, что ™ был записан где-то в кодировке UTF-8, и те же байты были прочитаны чем-то, что не понимает, что они в кодировке UTF-8, и предполагает, что они являются Latin-1 или похожими. Чтобы решить эту проблему, вам нужно будет очень внимательно посмотреть на конфигурацию программного обеспечения, написавшего персонажа, и программного обеспечения, которое его читает.

0 голосов
/ 29 октября 2011

Вы можете попробовать использовать форму Unicode в HTML

EX

<p id='test'>&#8482;</p>

Прочтите эту страницу, чтобы увидеть больше примеров по Unicode TM

http://www.fileformat.info/info/unicode/char/2122/index.htm

Надеюсь, это поможет.

...