在PHP中编码法语字符

时间:2011-12-12 19:05:52

标签: php xpath character-encoding

我有一个充满“生产者”的XML文档:

<producer>
   <name></name>
   <owner></owner>
   <address>
      <civic></civic>
      <mailing/>
      <town></town>
      <province></province>
      <postal></postal>
      <phone></phone>
      <fax></fax>
      <email></email>
      <website/>
   </address>
   <products>
      <product></product>
      <product></product>
      <product></product>
      <product></product>
      <product></product>
      <product></product>
      <product></product>
   </products>
   <exports>
      <region></region>
      <region></region>
      <region></region>
      <region>l'Amérique du Nord</region>
   </exports>
</producer>

例如,我想搜索“l'AmériqueduNord”这个词,这是该特定制作人的地区之一:

$query = "l'Amérique du Nord";
$xml = simplexml_load_file("../business-directory/producers-fr-nb.xml");

$upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZÀÂÆÇÈÉÊËÎÏÔŒÙÛÜ"; 
$lower = "abcdefghijklmnopqrstuvwxyzàâæçèéêëîïôœùûü"; 

$nodes = $xml->xpath('//producers/producer[descendant::*[contains(translate(text(), "'.$upper.'", "'.$lower.'"), "'.$query.'")]]');

它不起作用。当我在字符串$ query中存储短语“l'AmériqueduNord”时,我确定了问题。当我回复$ query时,我得到了这个:l'Amérique du Nord

我使用了像htmlspecialchars()和htmlentities()这样的函数来尝试编码é但似乎没有任何效果。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

看,我回答:)

enter image description here