Unicode の BiDi 処理が流行りそう!?

ということで、

‫‬‭‮‪‫‬‭‮҉

──の部分だけをコピペして使えば、文字が左右逆になる不思議な現象が再現できます。

҉←「文字の流れを左右逆にする特殊文字」のトリック

ここに出てきている文字実体参照は,Unicode の文字で,次の表のようになっています:

エンティティ Unicode 名称
҉ U+0489 COMBINING CYRILLIC MILLIONS SIGN
‪ U+202A LEFT-TO-RIGHT EMBEDDING
‫ U+202B RIGHT-TO-LEFT EMBEDDING
‬ U+202C POP DIRECTIONAL FORMATTING
‭ U+202D LEFT-TO-RIGHT OVERRIDE
‮ U+202E RIGHT-TO-LEFT OVERRIDE

もっとも簡単に,文字の流れを変更するには,流れを変更したい文字列を RIGHT-TO-LEFT OVERRIDE と POP DIRECTIONAL FORMATTING で囲みます.たとえば,

あいうえお‮アイウエオ‬あいうえお

というコードで

あいうえお‮アイウエオ‬あいうえお

このような結果が得られます.これは,次のような処理が行われた結果です.

  1. 日本語環境では,デフォルト状態が LEFT-TO-RIGHT である.
  2. 「あいうえお」を描画する
  3. RIGHT-TO-LEFT OVERRIDE によって,文字の流れの方向が RIGHT-TO-LEFT に上書きされる
  4. 「アイウエオ」を描画する
  5. POP DIRECTIONAL FORMATTING によって文字の流れの方向が元の LEFT-TO-RIGHT に戻される
  6. 「あいうえお」を描画する

もっと詳しい仕様については,Unicode の Specification をご覧ください.