Benutzer-UTF-8-Zeichenfolge in ConTeXt

Benutzer-UTF-8-Zeichenfolge in ConTeXt

Ich muss in meinem Text Eingaben aus einem JSON verwenden. Manchmal enthält es UTF-8-Code. Zum Beispiel:

Belgi\u00e
cre\u00ebren

Wie kann ich eine solche Zeichenfolge in ConTeXt LuaTeX verwenden, sodass das Ergebnis ein korrekt geschriebenes niederländisches Wort ist?

België
creëren

Vorzugsweise als Teil eines Satzes, wobei %placeofbirthCandidate und %raisedinCountries durch den Inhalt des JSON ersetzt werden.

\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.

Antwort1

Wenn Sie nur die folgenden Zeichen benötigen \ua000, können Sie vermutlich verwenden

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

Wenn Sie höhere Zeichen mit einem nachfolgenden Buchstaben verwenden müssen, \ukönnen Sie zusätzlich ua als Nicht-Buchstabenzeichen verwenden.

\catcode`\u=12

aber am besten machen Sie das in einer lokalen Gruppe, sonst geht etwas kaputt.

(Hierbei werden nur Luatex-Grundelemente verwendet, daher sollte es im Kontext funktionieren.)

Beachten Sie, dass Zeichen zwischen U+FFFF und U+10FFFF in JSON durch zwei Sequenzen dargestellt werden, \udie die UTF-16-Kodierung des Unicode-Werts bezeichnen. Eine vollständige Lösung müsste also das erste Zeichen eines UTF-16-Ersatzpaars erkennen und mit dem folgenden \uCode kombinieren.

verwandte Informationen