当我比较来自不同来源的两个字符串(我无法控制源代码)时,我遇到了问题< =>编码问题:
$a
- >来自HTML页面$b
- >来自XML 例如:
string(11) "Jean-Paul"
string(13) "Jeanâ€Paul"
我发现这个例子还没有找到第二个 - 所以我将它插入到DB - 中,并在html页面上显示两次相同的条目。 浏览器显示它们两者(Jean-Paul,Jean-Paul)。 源代码是:
Jean-Paul, Jean‐Paul
有没有办法转换文本才能找到相同的结果?
我尝试了mb_convert_encoding()
,utf8_encode()
,htmlentities()
,但问题是它正在编码'â€'
。
我需要一个通用的解决方案,可以将任何文本转换为“显示值”,这样我就可以将它们与最终值进行比较。
提前致谢。
韧皮
编辑:
来源示例:http://onlinelibrary.wiley.com/doi/10.1111/pcmr.12142/abstract
在这里,我得到Jean‐Paul
,我与Jean-Paul相比
EDIT2:
我认为抓取工具/解析器会分析和/或解释从不同网站获取的内容,对吗?
所以我想知道返回“通用”字符的函数'getCharacterStandardRepresentation()'是否不存在......
它可以“简单地”列出所有可能的字符表示并呈现“标准”字符。
即使对于想要将任何文件与其数据库中的内容进行比较的人,也可能会感兴趣。
答案 0 :(得分:0)
对于您可以使用的XML值(首次编辑后,您获得Jean‐Paul
)
html_entity_decode($xml_value, ENT_QUOTES, 'UTF-8')
转换它然后将其与HTML值进行比较。
希望它能解决你的问题。