Convertir en utf8 caractères iso-88591 et de retour en PHP
Certains de mes script en utilisant un codage différent, et quand j'ai essayer de les combiner, ce qui a d un problème.
Mais je ne peux pas changer l'encodage qu'ils utilisent, à la place je veux changer la encodig de la suite à partir d'Un script, et l'utiliser comme paramètre au script B.
Donc: est-il un moyen simple de modifier une chaîne de caractères UTF-8 ISO-88591 en PHP? J'ai regardé utf_encode et _decode, mais ils ne font pas ce que je veux. Pourquoi n'est-il pas exsist tout "utf2iso ()"fonction, ou similaire?
Je ne pense pas que j'ai des caractères qui ne peuvent pas être écrits dans la norme ISO-format, ce qui ne devrait pas être un gros problème.
- utf8_decode doit être exactement votre utf2iso?!?
- Il est intéressant de noter que PHP continue à se déplacer vers l'utf-8 interne afin que les chaînes que vous avez probablement venir de l'extérieur. Jeu de roulage, de fonctions d'accès aux fichiers, les ruisseaux, les PDO/MySQL, ou de toute autre API pour accéder aux données de l'extérieur pour utiliser l'UTF-8, de sorte qu'il sera déjà correcte lors de PHP qu'il obtient.
Vous devez vous connecter pour publier un commentaire.
Ont un coup d'oeil à
iconv()
oumb_convert_encoding()
.Juste en passant: pourquoi ne pas
utf8_encode()
etutf8_decode()
travail pour vous?Donc, essentiellement,
tous devraient en faire de même avec
utf8_en/decode()
nécessitant aucune extension spéciale,mb_convert_encoding()
nécessitant ext/mbstring eticonv()
nécessitant ext/iconv.Tout d'abord, ne pas utiliser des codages différents. Elle conduit à un gâchis, et UTF-8 est certainement l'un que vous devez les utiliser partout.
Les Chances sont de votre entrée n'est pas ISO-8859-1, mais quelque chose d'autre (ISO-8859-15, Windows-1252). Pour convertir de ceux-ci, l'utilisation iconv ou
mb_convert_encoding
.Néanmoins,
utf8_encode
etutf8_decode
devrait fonctionner pour ISO-8859-1. Il serait bien si vous pouviez poster un lien vers un fichier ou un uuencode ou base64 exemple de chaîne pour laquelle la conversion échoue, ou donne des résultats inattendus.mb_convert_encoding
certainement appartient à cette réponse. Ajouté.ensemble de la balise meta dans le head comme
utiliser le lien http://www.i18nqa.com/debug/utf8-debug.html pour remplacer les symboles personnage que vous voulez.
ensuite utiliser str_replace comme
Son la méthode que j'utilise et aider beaucoup. Merci!
Il est beaucoup mieux d'utiliser
$valeur = mb_convert_encode($valeur,'HTML-ENTITÉS','UTF-8');
Spécialement lorsque vous utilisez l'appel AJAX pour la présentation de 'ISO-8859-1" des personnages. Il travaille pour le Chinois, le Japonais, le tchèque, l'allemand et de nombreuses autres langues.
Vous devez utiliser le iconv paquet, plus précisément sa fonction iconv.
J'utilise cette fonction:
Découvrez ma fonction dans mon blog
http://www.unexpectedit.com/php/php-handling-non-english-characters-utf8
J'ai utilisé:
Dans mon cas, une fois les fichiers avec les noms contenant ces caractères ont été téléchargés, ils n'étaient même pas visibles avec Filezilla! Dans le gestionnaire de fichiers Cpanel ils ont été présentés avec ? (sous fond noir).
Et cette combinaison fait elle s'affiche correctement sur le navigateur (document HTML est de l'Ouest-encodé):
Utilisation
html_entity_decode()
ethtmlentities()
.htmlentities()
formats de votre entrée dansUTF8
ethtml_entity_decode()
formats de nouveau àISO-8859-1
.