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 中將由表示\uunicode 值的UTF-16 編碼的兩個序列表示,因此完整的解決方案必須檢測UTF-16 代理項對中的第一個並與下面的\u程式碼。

相關內容