String UTF-8 do usuário no ConTeXt

String UTF-8 do usuário no ConTeXt

Preciso usar a entrada de um JSON dentro do meu texto. Às vezes contém código UTF-8. Por exemplo:

Belgi\u00e
cre\u00ebren

Como posso usar essa string no ConTeXt LuaTeX, para que o resultado seja uma palavra holandesa escrita corretamente?

België
creëren

De preferência, como parte de uma frase, onde %placeofbirthCandidate e %raisedinCountries são substituídos pelo conteúdo do JSON.

\par Je bent geboren in %placeofbirthCandidate. Je bent opgegroeid in %raisedinCountries. 

\par Je bent geboren in Belgi\"e. Je bent opgegroeid in Nederland, Belgi\"e en Engeland.

Responder1

Se você precisar apenas dos caracteres abaixo \ua000, provavelmente poderá usar

\def\u#1#2#3#4{\uchar"#1#2#3#4 }

Se você precisar usar caracteres mais altos seguidos de uma letra, \uvocê também pode fazer uma não-letra

\catcode`\u=12

mas é melhor fazer isso em um grupo local ou algo irá quebrar.

(Isso está apenas usando primitivas luatex, portanto deve funcionar no contexto.)

Observe que os caracteres entre U+FFFF e U+10FFFF seriam representados em JSON por duas \usequências denotando a codificação UTF-16 do valor unicode, portanto, uma solução completa teria que detectar o primeiro de um par substituto UTF-16 e combinar com o seguinte \ucódigo.

informação relacionada