アラビア語シェーピング・オプション

コード・ページ変換時に文字が失われることがないように、特殊な処理を必要とするアラビア語文字ごとにシェーピング・オプション・セットを使用できます。

ラームとアリフ

ビジュアル表現用のコード・ページから暗黙表現用のコード・ページに変換が行われているときに、各ラーム-アリフ文字はラームとアリフに展開され、ブランク・スペースが 1 つ消費されます。 ブランク・スペースが使用不可である場合、ラーム-アリフ文字は Unicode uFExx 範囲内でそのまま保持され、暗黙表現用の単一バイトのコード・ページに変換されるときに、置換制御文字 (SUB) になります。 暗黙表現用のコード・ページからビジュアル表現用のコード・ページに変換が行われているときに、ラーム-アリフの圧縮によってスペースが 1 つ生成されます。 消費または生成されるスペースの位置は、次の表で説明しているように、シェーピング・オプションによって異なります。
表 1. ラーム-アリフ文字のコード・ページ変換時に消費または生成されるブランク・スペースの位置
シェーピング・オプション 消費または生成されるブランク・スペースの位置
ニア 変換対象の文字の隣
最初に バッファーの先頭(buffer[0])。
末尾 (At End) バッファーの末尾(buffer[length - 1])。
自動 テキストの方向を基準としたバッファーの先頭:buffer[0](左から右へのテキストの場合)およびbuffer[length - 1] (右から左へのテキストの場合)
バッファーのサイズ変更 スペースの消費も生成も行われません。 代わりに、バッファー・サイズが拡大されて追加文字が含められるか、またはバッファー・サイズが縮小されて、縮小プロセスの結果として生じるスペースが除去されます。

Seen のテール

ニア

ビジュアル表現用のコード・ページから暗黙表現用のコード・ページに変換が行われているときに、Seen 系文字の 2 文字の語末形 (独立形の 4 分の 3 の形状の文字とテール文字から構成される) はそれぞれ、対応する 1 文字の語末形に変換され、テールは 1 つのスペースで置き換えられます。 このスペースは Seen 文字の隣に配置されます。 暗黙表現用のコード・ページからビジュアル表現用のコード・ページに変換が行われているときに、1 文字の語末形はそれぞれ、対応する 2 文字の語末形に変換され、Seen 文字の隣のスペースが消費されます。 利用できるスペースがない場合、この文字は単一の、独立形の 4 分の 3 の形状の文字に変換されます。

Tashkeel (Tashkeel)

自動

特別な処理は行われません。

カスタマイズ: 先頭 (Customized At Begin)

シャッダを除くすべての Tashkeel 文字はスペースで置き換えられます。 結果のスペースは、バッファーの先頭(buffer[0])に移動されます。

カスタマイズ: 末尾 (Customized At End)

シャッダを除くすべての Tashkeel 文字はスペースで置き換えられます。 結果のスペースは、バッファーの末尾 (buffer[length - 1])に移動されます。

カスタマイズ: 幅 (Customized With Width)
すべての Tashkeel 文字は、対応するスペーシング文字に変換されます。 アラビア語 u06xx 範囲にある Tashkeel 文字は非スペーシング (ゼロ幅) 文字のみを使用して表現されるため、このオプションは、ビジュアル表現用のコード・ページから暗黙表現用のコード・ページへの変換には使用できません。
カスタマイズ: ゼロ幅 (Customized With Zero Width)
すべての Tashkeel 文字は、対応する非スペーシング (ゼロ幅) 文字に変換されます。
保持

特別な処理は行われません。

Yeh-Hamza

ニア

ビジュアル表現用のコード・ページから暗黙表現用のコード・ページに変換が行われているときに、後ろに Hamza 文字が続く各 Yeh 文字は 1 つの Yeh-Hamza 文字に変換されます。 縮小プロセスの結果として生じるスペースは Yeh-Hamza 文字の隣に配置されます。 暗黙表現用のコード・ページからビジュアル表現用のコード・ページに変換が行われているときに、各 Yeh-Hamza 文字は 2 つの文字 (Yeh と Hamza) に展開され、元の Yeh-Hamza 文字の隣にあるスペースが消費されます。 利用できるスペースがない場合、Yeh-Hamza 文字は単一の文字 Yeh に変換されます。