PHP字符串与不同随机编码的比较

时间:2015-10-09 07:22:42

标签: php encoding

当我比较来自不同来源的两个字符串(我无法控制源代码)时,我遇到了问题< =>编码问题:

  • $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()'是否不存在......

它可以“简单地”列出所有可能的字符表示并呈现“标准”字符。

即使对于想要将任何文件与其数据库中的内容进行比较的人,也可能会感兴趣。

1 个答案:

答案 0 :(得分:0)

对于您可以使用的XML值(首次编辑后,您获得Jean‐Paul

html_entity_decode($xml_value, ENT_QUOTES, 'UTF-8')

转换它然后将其与HTML值进行比较。

希望它能解决你的问题。