Probleme de charset

Probleme de charset - PHP - Programmation

Marsh Posté le 13-10-2007 à 00:44:02    

Bonjour à tous,
 
Je parse un fichier xml (qui se trouve sur un site distant) en php.
Le parsing se passe très bien mais j'ai un problème d'accent. Par exemple le 'é' se transforme en é. J'ai déjà eu ce problème auparavant mais jusqu'à maintenant j'ai toujours trouver un moyen de contourner le problème.
 
Je suis en charset ISO-8859-1. Le problème c'est que quand je passe en utf-8, d'autres accents disparaissent.
Pour faire simple :
En iso-8859-1 : "La Catégorie 'Electroménager' n'existe pas..."
En utf-8 : "La Cat�gorie 'Electroménager' n'existe pas..."
 
Alors j'ai trouvé deux solutions, soit je reste en utf-8 et je fais un html_entities, soit je reste en iso-8859-1 et je fais un str_replace avec une table de correspondance (dans laquelle j'ai rentré en dur que 'é' correspond à 'é' ainsi que pour tous les autres caractères spéciaux) mais bon c'est pas top.
Y a t'il pas un moyen plus simple, sans changer de charset, de transformer mon 'é' en 'é'.
 
Merci d'avance à ceux qui pourront m'aider.

Reply

Marsh Posté le 13-10-2007 à 00:44:02   

Reply

Marsh Posté le 14-10-2007 à 16:00:23    

J'ai réglé le problème en codant une fonction qui utilise un str_replace avec une table de correspondance que j'ai rentré en dur. Mais bon si quelqu'un a une solution plus propre, je suis preneur...

Reply

Marsh Posté le 15-10-2007 à 09:39:55    

é = caractère unicode affiché en iso-8859-1. Fait un utf8decode()

Reply

Marsh Posté le 15-10-2007 à 15:09:47    

Merci je ne connaissais pas cette fonction...
Par contre c'est utf8_decode() pas utf8decode()
ça m'a fait une fatal error :p, je suis allé cherché le vrai nom du côté de php.net
 
En tout cas, merci beaucoup elle marche nickel et me sera très utile.

Reply

Marsh Posté le 15-10-2007 à 15:10:42    

ouais, ils font chier avec les fonctions_avec_underscore et les fonctionssansunderscore :)

Reply

Marsh Posté le 15-10-2007 à 15:23:51    

lol :p

Reply

Sujets relatifs:

Leave a Replay

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