Мне нужно использовать входные данные из 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
кодом.