Si je dois avoir la valeur python suivante, UNICODE CHAR '0':
>>> unichr(0) u'\x00'
4 Réponses :
Il n'y en a pas.
Lua n'a aucun concept de valeur unicode. Lua n'a pas de concept de Unicode du tout em>. Toutes les chaînes Lua sont des séquences de "caractères" 8 bits, et toutes les fonctions de chaîne Lua les traiteront comme telles. Lua ne traite pas les chaînes comme ayant un codage unicode; Ils sont juste une séquence d'octets. P> Vous pouvez insérer un nombre arbitraire dans une chaîne. Par exemple: p> est équivalent à: p> la notation mais vous ne peut pas insérer directement des points de codes Unicode dans les chaînes Lua. Vous pouvez décomposer le code de code dans UTF-8 et utiliser le mécanisme ci-dessus pour insérer le code de code dans une chaîne. Par exemple: p> Ceci est le caractère Mais puisqu'aucune fonction Lua ne comprenne réellement UTF-8, vous devrez exposer certains fonction qui attend une chaîne UTF-8 afin de pouvoir être utile de quelque manière que ce soit. p> p> \ code> est suivie par 3 chiffres (ou l'un des caractères d'évacuation), qui doivent être inférieurs ou égaux à 255. Lua est parfaitement capable de manipuler des chaînes avec des caractères incorporés
\ 000 code>. P>
x code> suivi du Unicode combinant au-dessus du caractère de la flèche . p>
Bien que la Lua natif ne supporte ni ne gère directement Unicode, ses cordes sont vraiment des tampons d'octets arbitraires que par convention détiennent des caractères ASCII. Étant donné que les chaînes peuvent contenir toutes les valeurs d'octets, il est relativement simple de construire une prise en charge d'unicode sur des chaînes indigènes. Si les tampons d'octet se révèrent être insuffisamment robustes dans le but, on peut également utiliser un objet Il y a Une page du Wiki de l'utilisateur Lua qui discute de différentes façons de gérer UNICODE à Lua programmes. p> userData code> pour tenir quelque chose et avec l'ajout d'une métavère appropriée, dochez-la avec des méthodes de création, une translation à une version souhaitée. codage, concaténation, itération et autre chose dont il est nécessaire. p>
Que diriez-vous de
function unichr(ord) if ord == nil then return nil end if ord < 32 then return string.format('\\x%02x', ord) end if ord < 126 then return string.char(ord) end if ord < 65539 then return string.format("\\u%04x", ord) end if ord < 1114111 then return string.format("\\u%08x", ord) end end
Je ne comprends pas comment cela répond à votre propre question. Vous demandez vraiment simplement de demander comment formater un numéro hexadécimal avec un \ u code> devant celui-ci?
La question intitulée - "Quel est le moyen de représenter i> Unichar en Lua" - en fait, j'avais besoin de la fonction Lua pour générer la même chose que le script de python équivalent depuis que l'on vient à remplacer l'autre. Apparemment, c'est juste assez.
Pour une réponse plus moderne, Lua 5.3 a maintenant le utf8. Char code>
: P>
reçoit zéro ou plusieurs entiers, convertit chacun à sa séquence d'octets UTF-8 correspondante et renvoie une chaîne avec la concaténation de toutes ces séquences. P> blockQuote>