pb caractères spéciaux

pb caractères spéciaux - PHP - Programmation

Marsh Posté le 15-10-2004 à 13:52:34    

Bonjour,  
je lis un flux de données xml provenant d'un site internet en php
pour enregsiter le tout dans une base de données.
 
Pb : les caractères spéciaux sont codés :  
 
' pour '
é pour é
 
etc....
 
Comment je peux faire pour retourvé les caratères accentués ?
 
Je suis obligé de tout remplacer ?
si oui, ou trouver la liste exhaustive de ces codes ??
 
merci
 

Reply

Marsh Posté le 15-10-2004 à 13:52:34   

Reply

Marsh Posté le 15-10-2004 à 13:59:56    

faut que tu utilises
une combinaison de get_html_translation_table et d'array_flip pour retrouver ta chaine.

Reply

Marsh Posté le 15-10-2004 à 14:17:39    

Le "fucking manual" propose cette légendaire fonction inverse:

Code :
  1. function unhtmlentities ($string)
  2. {
  3. $trans_tbl = get_html_translation_table (HTML_ENTITIES);
  4. $trans_tbl = array_flip ($trans_tbl);
  5. return strtr ($string, $trans_tbl);
  6. }


mais il ne faut pas oublier que seules les entités y sont gérées, càd que les codages &#...; utilisant les rangs ascii ou Unicode doivent de toute façon faire l'objet d'un traitement spécifique par expression régulière. Il n'existe pas de conversion absolue pour la bonne raison que le jeu de caractères d'entrée est parfois plus étendu que celui de sortie.
Par exemple, l'apostrophe peut être rendue par son entité habituelle, mais aussi par le car U+27, mais aussi U+2019 (apos. typographique), voire U+2032 (prime) sur certains sites...

Reply

Marsh Posté le 15-10-2004 à 15:17:13    

ACut a écrit :

Le "fucking manual" propose cette légendaire fonction inverse:

Code :
  1. function unhtmlentities ($string)
  2. {
  3. $trans_tbl = get_html_translation_table (HTML_ENTITIES);
  4. $trans_tbl = array_flip ($trans_tbl);
  5. return strtr ($string, $trans_tbl);
  6. }


mais il ne faut pas oublier que seules les entités y sont gérées, càd que les codages &#...; utilisant les rangs ascii ou Unicode doivent de toute façon faire l'objet d'un traitement spécifique par expression régulière. Il n'existe pas de conversion absolue pour la bonne raison que le jeu de caractères d'entrée est parfois plus étendu que celui de sortie.
Par exemple, l'apostrophe peut être rendue par son entité habituelle, mais aussi par le car U+27, mais aussi U+2019 (apos. typographique), voire U+2032 (prime) sur certains sites...


 
 
Merci pour tout, je suis allé un peu vite pour poser ma question
je n'ai pas consulter le manuel car je ne pensais pas que php
disposé de telles fonctions  
 
a+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed