Étant donné un nombre décimal ou hexadécimal Unicode pour un caractère qui doit être généré à partir d'un script PHP CLI, comment PHP peut-il le générer? La fonction chr()
semble ne pas générer la sortie appropriée. Voici mon script de test, en utilisant le caractère Section Break U + 00A7 (A7 en hexadécimal, 167 en décimal, doit être représentée comme C2 A7 en UTF-8) comme un test:PHP construit une chaîne Unicode?
<?php
echo "Section sign: ".chr(167)."\n"; // Using CHR function
echo "Section sign: ".chr(0xA7)."\n";
echo "Section sign: ".pack("c", 0xA7)."\n"; // Using pack function?
echo "Section sign: §\n"; // Copy and paste of the symbol into source code
La sortie I get (via une session SSH sur le serveur) est:
donc, cela prouve que la police de terminal J'utilise a la section caractère Break en elle, et la connexion SSH envoie le long avec succès, mais chr()
ISN » t la construire correctement lors de la construction à partir du numéro de code.
Si je n'ai que le numéro de code et non une option copier/coller, quelles options ai-je?
Un excellent moyen de le faire serait d'écrire le document PHP en UTF-8 en premier lieu. –
Excellente réponse, Michael; et merci pour la fonction! J'ai créé quelque chose de similaire pour moi en utilisant la fonction pack plutôt que chr à plusieurs reprises. Billy, dans ce but précis, je dois passer d'un code à un personnage; écrire le script PHP en UTF-8 avec les caractères déjà intégrés n'est pas une option. – MidnightLightning