ConTeXt 中的用户 UTF-8 字符串

ConTeXt 中的用户 UTF-8 字符串

我需要在文本中使用 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表示 unicode 值的 UTF-16 编码的序列表示,因此完整的解决方案必须检测 UTF-16 代理对中的第一个并与以下代码相结合\u

相关内容