Poster une réponse à un sujet: [PHP] output conversion failed
Attention, ce sujet est un sujet ancien (6362 jours sans réponse)
philfr
Parce que si c'est pas de l'UTF et que tu le décodes, il sera vide
Sauf si c'est de l'utf-8 valide sans être vraiment de l'utf-8.
Le string ISO8859-1 valide "é" est la séquence de bytes "\xc3\xa9"
Qui est aussi la représentation utf-8 du caractère "é".
Il n'y a pas de façon sûre de déterminer l'encodage d'une chaîne de caractères. Parfois pour l'utf-8 certains fichiers commencent en effet par une séquence "magique", mais c'est pas obligé
Et ce n'est de toutes façons jamais vrai pour les encodages ISO qu'on ne peut donc pas distinguer.
zion
un texte en UTF commence en général par un délimiteur (me demande plus lequel, sauve avec le notepad puis éditeur hexa).
Par contre je me souviens avoir vu un jour un code assez bourrin qui est pas si con, c'est un truc du genre
pourquoi?
Parce que si c'est pas de l'UTF et que tu le décodes, il sera vide, sinon dans le pire des cas t'as rien perdu
Par contre je me souviens avoir vu un jour un code assez bourrin qui est pas si con, c'est un truc du genre
- $texte = "plop";
- $texte_decode = utf8_decode($texte);
- if ($texte_decode != "")
- $texte = $texte_decode;
pourquoi?
Parce que si c'est pas de l'UTF et que tu le décodes, il sera vide, sinon dans le pire des cas t'as rien perdu
cauet
en fait, il aurait fallut une fonction is_utf8() alors.. je met cette fonction car des fois elle est appelée avec de l'ISO, des fois en UTF.. va donc savoir
philfr
Si ton fichier est encodé en ISO-8859, tu ne dois pas le décoder comme de l'UTF-8.
Ton utf8_decode fonctionne sûrement très bien si tu lui donnes de l'utf-8 en entrée...
Ton utf8_decode fonctionne sûrement très bien si tu lui donnes de l'utf-8 en entrée...
cauet
Et en concrètement?
utf8_decode qui est foireux alors? j'ai des doutes là
utf8_decode qui est foireux alors? j'ai des doutes là
philfr
Logique: en iso-8859, les caractères > 128 sont valides, en utf-8, s'il y a un byte >128, c'est le premier d'un caratère multibyte.
Donc ta conversion foire si tu as des accents ou autres caractères spéciaux.
Donc ta conversion foire si tu as des accents ou autres caractères spéciaux.
cauet
Bon apparemment, mon arbe XML étant constitué en ISO. Si je balance avant un utf8_decode ca merdoie.
Par contre sans ca marche et mes caractères passent en ISO..
Pas trop pigé sur ce coup
Par contre sans ca marche et mes caractères passent en ISO..
Pas trop pigé sur ce coup
ovh
cauet
Voilà ce qu'on m'a rapporté sur serveur de prod cette nuit:
Warning: DOMDocument::saveXML() [function.DOMDocument-saveXML]: output conversion failed due to conv error, bytes 0xE7 0x61 0x20 0x6D in /home/smsaction/sms/outgoing/push_mt.php on line 29
Ce script fonctionne à merveille depuis longtemps.. c'est la première fois que cette erreur ce produit.
Quelqu'un peux m'en dire plus?
Merci!
Warning: DOMDocument::saveXML() [function.DOMDocument-saveXML]: output conversion failed due to conv error, bytes 0xE7 0x61 0x20 0x6D in /home/smsaction/sms/outgoing/push_mt.php on line 29
Ce script fonctionne à merveille depuis longtemps.. c'est la première fois que cette erreur ce produit.
Quelqu'un peux m'en dire plus?
Merci!