web-dev-qa-db-fra.com

Convertir ASCII EN encodage UTF-8

Comment convertir ASCII encodage en UTF8 en PHP

32
user614856

ASCII est un sous-ensemble de UTF-8, donc si un document est ASCII alors c'est déjà UTF-8.

48
Quentin

Si vous savez avec certitude que votre encodage actuel est purement ASCII, vous n'avez rien à faire car ASCII est déjà un UTF-8 valide.

Mais si vous voulez toujours convertir, juste pour être sûr que son UTF-8, alors vous pouvez utiliser iconv

$string = iconv('ASCII', 'UTF-8//IGNORE', $string);

IGNORE supprimera tous les caractères invalides au cas où certains n'étaient pas valides ASCII.

25
Dmitri

Utilisez mb_convert_encoding pour convertir un ASCII en UTF-8. Plus d'infos ici

$string = "chárêctërs";
print(mb_detect_encoding ($string));

$string = mb_convert_encoding($string, "UTF-8");
print(mb_detect_encoding ($string));
4
albertoiNET

Utilisez utf8_encode()

La page de manuel peut être trouvée ici http://php.net/manual/en/function.utf8-encode.php

Lisez également cet article de Joel sur le logiciel. Il fournit une excellente explication de ce qu'est Unicode et de son fonctionnement. http://www.joelonsoftware.com/articles/Unicode.html

4
thomas

"ASCII est un sous-ensemble de UTF-8, donc ..." - donc UTF-8 est un set? :)

En d'autres termes: toute chaîne construite avec code points de x00 à x7F est indiscernable représentations (séquences d'octets) dans ASCII et UTF-8. La conversion d'une telle chaîne est inutile.

3
Radek M