双方向テキスト 双方向テキストの概要

双方向テキスト

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/30 08:12 UTC 版)

ナビゲーションに移動 検索に移動

概要

現代において右横書きが必要な文字体系にはヘブライ文字アラビア文字シリア文字ターナ文字などがあるが、これらの文字体系はつねに右から左に書かれるわけではなく、数字(アラビア数字インド数字)は左から右に書かなければならない。したがって、ひとつの言語だけで書かれる場合であっても、これらの文字体系では双方向テキスト処理を行う必要がある。

双方向テキスト処理は多言語の混在する環境ではとくに重要になる。

表示順と論理順

双方向テキストには表示順[1]と論理順[2]の2種類がある。表示順は、表示方向を(通常は左から右に)固定しておき、右から左に書くテキストは逆順にデータを格納する。この方法では、表示アルゴリズムは単純化されるが、右横書きのテキストを入力するには特殊なことをしなければならない。論理順では、左横書きでも右横書きでも、論理的に先に来るものを先に格納する。自然な方法だが、表示アルゴリズムは複雑になる。

MIMEの双方向テキストに関する規格である RFC-1556 では、アラビア文字(ISO/IEC 8859-6)およびヘブライ文字(ISO/IEC 8859-8)については表示順を既定とし、iso-8859-6-eiso-8859-8-e を指定した場合は明示的に方向を指定、iso-8859-6-iiso-8859-8-i では暗黙の論理的方向に従うとする。W3C では論理順を使用し、接尾辞 -i が付いた文字集合を指定することを推奨している[3]

Unicode は論理順を採用している。

以下の節ではいずれも論理順の場合に必要になるアルゴリズムを示す。

初期状態

Unicodeでは、段落ごとに、その最初の強い(後述)文字によって、その段落が左横書きであるか右横書きであるかを決定する[4]

現実にはこの方法では不便なことが多いため、Microsoft Windowsメモ帳macOSテキストエディットなどでは方向を指定できるようになっている。

文字の種類による方向の決定

ラテン文字漢字かななどは既定で左横書きの文字、アラビア文字やヘブライ文字などは右横書きの文字である。両者を混在させた場合(以下の例ではわかりやすくするためラテン文字を右から左に書く文字として扱う)、左横書きの段落で「いろは ABC にほへ DEF とちり」は、

いろは CBA にほへ FED とちり

のように表示される。すなわち、右から左へ書く文字の部分だけが逆順に表示され、それ以外の部分は右方向へ進む。

しかし、右横書きの中に数字列があらわれる場合は、異なる処理が必要となる。例として「いろは ABC 123 DEF にほへ」は、

いろは FED 123 CBA にほへ

のように表示される。すなわち「123」は左から右へ表示されるが、「123」全体は先行する文字列の左に置かれ、「123」に後続する文字列もその左に書かれる。このような処理をする必要のある文字を「弱い左横書きの文字」という。弱い文字には、アラビア数字インド数字、および数字につなげて書かれる単位(°、通貨記号)などがある。これに対して、上記のラテン文字・漢字・かななどは強い左横書きの文字、アラビア文字・ヘブライ文字などは強い右横書きの文字である。

Unicode ではアラビア文字とヘブライ文字の後ろで弱い文字の処理のしかたが異なり、「120%」を前者は「%120」のように表示するが、後者は「120%」のままになる。

スペースや記号類の多くは方向性を持たない中立の文字で、先行する文字が左から右の場合にはその右に、右から左の場合にはその左に書かれる。

現実には、このような文字の種類による暗黙の方向性だけではうまく処理できない場合があるため、明示的に方向を指定するための別の方法(タグづけや制御記号など)を併用する必要がある。

方向によって字形の変わる文字

括弧類や不等号の類は、左から右へ書かれるときと右から左へ書かれるときでは字形が左右反転する。


  1. ^ : visual
  2. ^ : logical
  3. ^ Authoring HTML: Handling Right-to-left Scripts, W3C, (2014-06-03), http://www.w3.org/TR/2014/NOTE-i18n-html-tech-bidi-20140603/ 
  4. ^ Unicode Standard Annex #9 の P2
  5. ^ Unicode Standard Annex #44
  6. ^ Unicode 6.3.0”. Unicode Consortium (2013年9月30日). 2015年6月12日閲覧。
  7. ^ JTC1/SC2/WG2 N4310: Proposal for Four Characters for Bidi” (2012年7月31日). 2015年6月12日閲覧。
  8. ^ Aharon Lanin, Mark Davis, Roozbeh Pournader (2012年7月24日). “A Proposal for Bidi Isolates in Unicode”. 2015年6月12日閲覧。
  9. ^ Unicode Technical Report #36 2.5 Bidirectional Text Supporting
  10. ^ HTML 4.01 Specifications 8.2.2: The default value of the dir attribute is "ltr" (left-to-right text).
  11. ^ CSS Writing Modes Level 3”. W3C (2014年3月20日). 2015年6月12日閲覧。
  12. ^ Apple Mac OS X の AppKit におけるバッファオーバーフローの脆弱性”. 脆弱性対策データベース (2010年11月29日). 2015年6月12日閲覧。
  13. ^ 複数の Mozilla 製品の nsTextFrameUtils::TransformText 関数におけるヒープベースのバッファオーバーフローの脆弱性”. 脆弱性対策データベース (2011年5月17日). 2015年6月12日閲覧。
  14. ^ 日本語でも危険!アラビア語ファイル名を利用した攻撃とは?”. ASCII.jp - TECH (2011年9月12日). 2015年6月12日閲覧。
  15. ^ Nicholas Boucher; Ross Anderson (2021-10-30), Trojan Source: Invisible Vulnerabilities, arXiv:2111.00169v1 


「双方向テキスト」の続きの解説一覧



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「双方向テキスト」の関連用語

双方向テキストのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



双方向テキストのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの双方向テキスト (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS