如果我有
<p id='test'>TEST™</p>
我用
document.getElementById('test').innerHTML;
将HTML传递给php函数,在该函数中使用DOMDocument和XPath提取所有文本节点。
当PHP获取内容时™
转换为™。我通过XPath运行它,文本节点返回:
TESTâ„ ¢
我不确定出现了什么问题,或者是否有办法解决它,或者在javascript方面进行修复,以便它通过™
而不是™。
感谢任何帮助。
答案 0 :(得分:1)
使用PHP字符传递变量的值,而不是™
,在PHP中通过htmlentities()
传递的值应该处理它。
答案 1 :(得分:0)
您可以尝试使用HTML Unicode表单
EX
<p id='test'>™</p>
阅读本页以获取有关Unicode TM的更多示例
http://www.fileformat.info/info/unicode/char/2122/index.htm
希望这有帮助。
答案 2 :(得分:0)
你需要更准确地说它“回归”。该™似乎是用UTF-8编码的某处编写的,然后相同的字节被一些没有意识到它们采用UTF-8编码的东西读取,并假设它们是Latin-1或类似的。要解决这个问题,您需要仔细查看编写该字符的软件的配置以及读取该字符的软件。
答案 3 :(得分:0)
迈克尔说的是真的;此外,您应该知道XML处理器基本上需要将字符实体(例如&amp; tm;)转换为它们的实际字符值,并且(几乎)总是产生具有以某些主要字符集编码的字符的输出。采取英雄措施来防止这种情况,通常不是一个“好主意”。因此,您应该放弃尝试这样做,我的猜测是,通过确保您传递HTML的函数被告知将其解释为utf-8而不是其他字符集(可能只是系统默认)。