2017-02-11 3 views
0

タイ語のキーボード入力を処理しています。いくつかのキーは母音記号で、特定の先行文字と結合したときにのみ使用できます。ここでタイの母音記号と無視するときのICU

0x0E33は、たとえば0x0E1C + 0x0E33については母音記号

が有効
ですが0x0E44 + 0x0E33が有効でないと0x0E33が無視されるべきです。

私は、母音記号を無視するか、それとも前の文字と組み合わせないかを知る方法を探しています。

どのようなアイデアをお願いしますか?

答えて

0

多くのタイ語の母音(およびトーンマークは、途中で)ノンスペース結合のマークカテゴリに属します。あなたの目標は、各キャラクターがどのカテゴリーに属しているかを示すライブラリーを使用することです。次に、アプリケーションコンテキストで「無視する」ことが何であれ、「無視」するかどうかを決定できます。関心のUnicode General Category Values

あなたの2つの点がある

チェック:

  • ロー| Other_Letter通常の文字です。
  • Mn |ゼロ幅のスペース以外の記号の場合はNonspacing_Mark

さらに読書:

+0

はい、私はその情報を取得するためにICUライブラリを使用することができます。しかし、タイ語の母音は、先行する特定の文字と組み合わせることしかできません。それ以外の場合はスペースが必要です(誤った組み合わせです)。私はそれが有効な組み合わせであるかどうかを判断する一般的な方法を理解しようとしています。 –

+0

あなたが提供したリンク(タイ語のスクリプト用のUnicodeデータ)を見ると、あなたのコメントがどのように役立つか分かりません。私の例では、3つの文字すべてのカテゴリ値は同じです(Lo)。 –

関連する問題