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、さらに文字以外の文字を追加することもできます。

\catcode`\u=12

ただし、ローカル グループ内で実行するのが最善です。そうしないと、何かが壊れてしまいます。

(これは luatex プリミティブを使用しているだけなので、コンテキスト内で動作するはずです。)

U+FFFF から U+10FFFF までの文字は、JSON では\uUnicode 値の UTF-16 エンコードを示す 2 つのシーケンスによって表されるため、完全なソリューションを得るには、UTF-16 サロゲート ペアの最初のものを検出し、次の\uコードと組み合わせる必要があることに注意してください。

関連情報