Poster une réponse à un sujet: [PHP] output conversion failed
Attention, ce sujet est un sujet ancien (6414 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é :spamafote:
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

  1. $texte = "plop"
  2. $texte_decode = utf8_decode($texte); 
  3. if ($texte_decode != ""
  4.   $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 :grin:
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 :ohwell:
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...
cauet
Et en concrètement? :neowen:
utf8_decode qui est foireux alors? j'ai des doutes là :oh:
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.
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 :heink:
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?


:cupra:

Merci!
Catégorie:  






Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
6px
8px
10px
12px
14px
16px
18px
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?