problème de conversion UTF-16 -> ISO-8859-1 [PHP XML] - PHP - Programmation
Marsh Posté le 04-11-2005 à 15:46:58
bon en cherchant dans la section xml plutot que php j'ai trouvé une nouvelle piste en utilisant iconv avec //TRANSLIT, si le résultat est acceptable ca peut le faire
Marsh Posté le 04-11-2005 à 16:07:23
c'est bon j'ai trouvé la solution
je remplace
$content = mb_convert_encoding($content,"ISO-8859-1","UTF-16" );
par
$content = iconv('UTF-16','ISO-8859-1//TRANSLIT',$content);
et ca marche à peu près
Marsh Posté le 04-11-2005 à 15:36:09
Bonjour à tous ,
Une recherche n'ayant rien donnée, je vous expose mon problème :
Je traite des fichiers XLM en UTF-16
ma classe ouvre le fichier classiquement ( $content = file_get_contents($file); )
puis convertit l'encodage afin de pouvoir utiliser correctement les fichiers XML avec d'autres classes
( $content = mb_convert_encoding($content,"ISO-8859-1","UTF-16" ); )
le souci est que certains caractères (code hexa 0x0019 -> sorte d'apostrophe, et code 0x0026 -> ... ) ne sont pas convertis mais sont remplacé par le caractère de substitution par défaut ( ? ou mb_substitute_character(CODE_HEXA_QUE_JE_VEUX);
je souhaite remplacer les caractères qui posent problème avant leur conversion en ISO-8859-1 et j'ai déjà testé sans succès :
str_replace avec les codes hexa, et avec les symboles convertis en UTF-16,
strtr avec les codes hexa, et avec les symboles convertis en UTF-16,
mb_ereg_replace avec les codes hexa, et avec les symboles convertis en UTF-16
rien ne marche pour le moment, si vous avez des idées pour contourner ou résoudre le problème je suis preneur