Comment obtenir le caractère de point de code unicode en PHP?
Par exemple,
comment obtenir le caractère correspondant à U+010F?
Vous devez vous connecter pour publier un commentaire.
Par exemple,
comment obtenir le caractère correspondant à U+010F?
Vous devez vous connecter pour publier un commentaire.
if (!function_exists('mb_ord')
et "if (!function_exists('mb_chr')
ou de les supprimer complètement, car ils sont maintenant ajoutés à la 7.2 mbstringpack()
, c'est probablement légèrement plus rapide:function mb_chr($id) { return mb_convert_encoding(pack("N", $id), "UTF-8", "UCS-4BE"); }
Je viens d'écrire un
polyfill
manquantes sur multibyte versions deord
etchr
avec les points suivants à l'esprit:Il définit des fonctions
mb_ord
etmb_chr
que si elles n'existent pas déjà. Si elles n'existent pas dans votre cadre ou le futur de la version de PHP, le polyfill sera ignoré.Il utilise le largement utilisé
mbstring
extension pour faire la conversion. Si lembstring
extension n'est pas chargé, il va utiliser laiconv
extension de la place.EDIT :
J'ai ajouté des fonctions pour HTMLentities de codage /décodage et de codage /décodage de format JSON ainsi que certains le code de démonstration pour savoir comment utiliser ces fonctions
Code :
Comment utiliser :
Sortie :
0x010F
pour laU+010F
personnage mentionné dans la question (plutôt que, par exemple,0xC48F
en UTF-8).UCS-4BE
suggère qu'il n'.IntlChar est une nouvelle soins intensifs à base de builtin classe publié avec PHP/7 exactement, répond à ce problème:
Dans le cas où cela est utile à personne, PHP 7.2, a ajouté le
mb_ord
etmb_chr
équivalents àord
etchr
. Par exemple, le code suivant fonctionne en PHP 7.2Ce a 2 effets secondaires (a) On n'a pas besoin de mettre en œuvre leur propre et (b) si l'on a déjà mis en place leur propre ils ont besoin de l'envelopper dans un
if (function_exists('mb_chr'))
Si vous le contrôle de l'UTF-8 encoder de vos chaînes (comme recommandé par le latin et d'autres normes européennes), il vous suffit de
Voir l'Exemple n ° 1 de php homme. Vous pouvez modifier le deuxième paramètre à ENT_NOQUOTES, etc. et, payer attetion, utilisez ENT_XHTML, etc. si votre chaîne est un Langage de Balisage (!).