タイ語と Unicode の照合アルゴリズムの違い

Thai Industrial Standard (TIS) TIS620-1 (コード・ページ 874) のタイ語データベースで NLSCHAR 照合オプションを指定した場合に使用される照合アルゴリズムは、Unicode データベースで、CLDR181_LTH などのタイ語ロケール属性を指定して、ロケールを認識する UCA ベースの照合オプションを使用する場合の照合アルゴリズムとよく似ていますが、同じではありません。

その違いは次のとおりです。

  • TIS620-1 データをソートする場合は、 1 文字の重みは 1 つだけであり、 照合ではその重みを使用することによって別の文字の重みと比較されます。 Unicode データのソートの場合、1 文字にはいくつかの重みがあり、 照合ではその文字のすべての重みが使用されます。
  • TIS620-1 データをソートする場合、 スペース文字 X'20'、ハイフン文字 X'2D'、および完全停止文字 X'2E' は、 いずれもその重みはどのタイ語の文字よりも小さくなっています。 しかし Unicode データをソートする場合、 それらの 3 文字は句読記号であると見なされ、 比較においてそれが使用されるのは、 比較する 2 つのストリングのうちのその他の文字がすべて等しい場合だけです。
  • TIS620-1 データベースの Paiyannoi 文字 X'CF' と Maiyamok 文字 X'E6' は、 それがそれ以外のタイ語の文字の直後にある場合には句読記号として処理されますが、 それがストリングの先頭に出現する場合は、 独自の重み値を持つ通常の文字として処理されます。 Unicode データベース内の同じ 2 文字 (U+0E2F および U+0E46) は、常に句読記号として処理され、比較においてそれらが使用されるのは、比較する 2 つのストリングに含まれているその他の文字がすべて等しい場合です。

タイ文字に関する詳細については、「Unicode 規格書」の『Southeast Asian Scripts』という章を参照してください。