Пользовательская строка UTF-8 в ConTeXt

Пользовательская строка UTF-8 в ConTeXt

Мне нужно использовать входные данные из JSON внутри моего текста. Иногда он содержит код UTF-8. Например:

Belgi\u00e
cre\u00ebren

Как можно использовать такую ​​строку в ConTeXt LuaTeX, чтобы в результате получилось правильно написанное голландское слово?

België
creëren

Предпочтительно, как часть предложения, где %placeofbirthCandidate и %raisedinCountries заменены содержимым 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.

решение1

Если вам нужны только символы ниже, \ua000то вы, вероятно, можете использовать

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

Если вам нужно использовать более высокие символы с последующей буквой, \uто вы можете дополнительно сделать ua небуквенным

\catcode`\u=12

но лучше всего это делать в местной группе, иначе что-то сломается.

(Здесь используются только примитивы luatex, поэтому в контексте должно работать.)

Обратите внимание, что символы между U+FFFF и U+10FFFF будут представлены в JSON двумя \uпоследовательностями, обозначающими кодировку UTF-16 значения Unicode, поэтому полное решение должно будет обнаружить первый из суррогатной пары UTF-16 и объединить его со следующим \uкодом.

Связанный контент