Comment les chaînes UTF-8 (chaîne de 8 bits) peuvent-elles être converties en/depuis des chaînes de caractères 7 bits compatibles XML (ie ASCII imprimable avec des entités numériques)?Conversion d'une chaîne UTF-8 vers/à partir de XML 7 bits en PHP
-à-dire une fonction encode()
telle que:
encode("“£”") -> "“£”"
decode()
serait également utile:
decode("“£”") -> "“£”"
la paire de PHP htmlenties()
/html_entity_decode()
ne fait pas la bonne chose:
htmlentities(html_entity_decode("“£”")) ->
"“£”"
Spécification laborieuse des types h ELPS un peu, mais toujours renvoie des entités nommées XML incompatibles, les non numériques:
htmlentities(html_entity_decode("“£”", ENT_QUOTES, "UTF-8"), ENT_QUOTES, "UTF-8") ->
"“£”"
impressionnant, je ne le savais pas encore :) – Kris
Je pense que mb_encode_numericentity fera la bonne chose, mais trouver les bons arguments est difficile. (La partie difficile semble préserver (c'est-à-dire ne pas convertir) les caractères ASCII et de ponctuation imprimables (par exemple, "&" doit aller à "&", mais "^" peut rester tel quel). – mjs