双方向テキスト 規格

双方向テキスト

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

規格

JIS X 0211

制御機能を定義した ECMA-48 の第5版(1991)、それを元にした ISO/IEC 6429:1992、およびそれに対応する日本の標準 JIS X 0211-1994 「符号化文字用制御機能」では、横書き(左から右、右から左)と縦書き(上から下、下から上)、行の進む方向として縦書きなら「左から右・右から左」、横書きなら「上から下・下から上」に対応している。表示方向は機能 SPD(表示方向選択)によって選択される。書字方向を指定する機能としては SCP(文字進路選択)、SDS(方向付き文字列開始)、SRS(逆文字列開始)、SIMD(自動移動方向選択)がある。

双方向テキストの取り扱い方とその問題点については ECMA TR-53 (1991) にまとめられており、JIS X 0211 もこの文献を参照している。

Unicode

Unicodeでは、各文字は暗黙の方向に関する属性(Bidirectional Class)を持っている[5]。見かけが同じようであっても、ヘブライ文字の א‎ (U+05D0 Hebrew Letter Alef) は R(強い右横書きの文字)、数学記号の (U+2135 Alef Symbol) は L(強い左横書きの文字)である。

くわえて、明示的に文字の方向を変えるための以下の記号を定義している。

コード 名称
U+061C Arabic letter mark (ALM)
U+200E Left-to-right mark (LRM)
U+200F Right-to-left mark (RLM)
U+202A Left-to-right embedding (LRE)
U+202B Right-to-left embedding (RLE)
U+202C Pop directional formatting (PDF)
U+202D Left-to-right override (LRO)
U+202E Right-to-left override (RLO)
U+2066 Left-to-right isolate (LRI)
U+2067 Right-to-left isolate (RLI)
U+2068 First strong isolate (FSI)
U+2069 Pop directional isolate (PDI)

この中で LRM と RLM と ALM が最もよく使われる。LRM は表示されない強い左横書きの文字として働く。RLM と ALM は同様に強い右横書きの文字として働く。LRM と RLMは ISO/IEC 8859-6 にも存在する。ALM はアラビア文字用で、Unicode 6.3 で追加された。

LRO は以降の文字列を強制的に左から右へ(RLO は右から左へ)表示する。

LRE は以降の文字列を左から右(RLE は右から左)の方向性に置く。右から左へ書かれる文章の中で引用句として左から右へ書かれる文章を使いたいときに使用する。たとえば「いろは ABC にほへ」は、

  • 左から右の段落では「いろは CBA にほへ」
  • 右から左の段落では「にほへ CBA いろは」

と書かれるが、右から左への段落でも「いろは CBA にほへ」の順序で書きたいときに LRE を使用する。

PDF は、LRE, RLE, LRO, RLO ではじまる状態を終わらせる。

LRI、RLI、PDI、FSI は Unicode 6.3 で新しく追加されたもので[6][7][8]、最初の3つは LRE, RLE, PDF に似ているが、指定した文字列全体は中立な文字列として働き、周囲の文字列の方向に影響を与えない。FSI は LRI/RLI に似ているが、右横書きであるか左横書きであるかが後続する最初の強い文字の種類によって決定される。

LRO、RLO の使用はセキュリティ上の問題から非推奨となっている[9]

HTML

HTML 4.01 では、暗黙の文字の進行方向は左横書きに固定されている[10]。dir 属性によって方向を変更することができる。また、通常の表示順を変更することのできる BDO 要素があり、たとえば表示順に並んでいるテクストを正しく表示するのに使うことができる。これは Unicode の LRO/RLO/PDF と同じ役割を果たす。

Unicode の LRM と RLM は、それぞれ文字実体参照 ‎‏ として定義されている。

HTML5 では、BDI (Text directionality isolation) 要素が追加され、要素の中のテキストが周辺に影響を及ぼさないように分離することができる。

CSS

CSS 2 では directionunicode-bidi の2つの属性が定義されている。direction 属性には値として rtlltr のいずれかを指定する。unicode-bidi 属性には値として normalembedbidi-override のいずれかを指定する。embed は Unicode の LRE/RLE による方法、bidi-override は同 LRO/RLO と同様の方法を使用する。

CSS 3 では unicode-bidiisolateisolate-overrideplaintext が追加されている[11]


  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