2016-04-03 20 views
5

ユニコードでは、右から左または左から右へ読むときをいつ認識しますか?ユニコードでのアラビア語文字の処理

wordとpythonの両方で例えば

あなたがバックスペースを打つとしたら、

هذا هو الملعون جيد رجل الصباح! 

は、それが右から左に読まれることになります。

私はUnicodeは

u'\u0647\u0630\u0627 \u0647\u0648 \u0627\u0644\u0645\u0644\u0639\u0648\u0646 \u062c\u064a\u062f \u0631\u062c\u0644 \u0627\u0644\u0635\u0628\u0627\u062d!' 

ですが、私は右または左へ右へ左意味は何も見なかった表現をバイトに印刷。

Hi how are you, it works from left to right. 

、のような通常の文字列の場合

は、右または左何かに表すためにUnicode文字またはバイトはそこはずの?

答えて

1

ここに、それを説明するためのコメディーな方法があります。ユニコードで https://www.explainxkcd.com/wiki/index.php/1137:_RTL

、RLM文字は、それがE2 80 8FであるUTF-8でRIGHT-TO-LEFT MARK (HTML ‏ · ‏). U + 200Fでエンコードされています。使用方法は、Unicode双方向アルゴリズムで と規定されています。 LRMはU + 200E左から右へMARK

https://en.wikipedia.org/wiki/Right-to-left_mark

双方向アルゴリズムは、ここで記載されて符号化されます。 http://unicode.org/reports/tr9/

具体的にALM U + 061C ARABIC LETTER MARK右から左への書き込み方向は、各Unicode文字のプロパティである

+3

ほとんどの場合、明示的な方向コントロールは使用しないでください。 – o11c

2

ゼロ幅アラビア文字。 Unicodeには、各コードポイント(数字、数学記号、アルファベットかどうか、その大文字小文字、方向性、どのコードブロックであるか、間接的にスクリプトを定義するかなど)に応じた複雑なプロパティセットが含まれています。

たとえば、bidi(双方向性)プロパティ[AL]を含むhttp://www.fileformat.info/info/unicode/char/0647/index.htm(これはこの例の最初の文字です)は、このグリフの書き込み方向として「右から左にアラビア語」をエンコードします。

テキストの方向を明示的に設定するUnicode文字がありますが、これらは通常は必須ではありません。フォントレンダラーは、レンダリングするそれぞれの文字について、そのUnicodeプロパティから、必要な方向を知っているはずです(ただし、他のレガシーエンコーディングから変換されたテキストには明示的な方向指示コードが含まれることがあります)。

関連する問題