把「月谷老师」渲染成「谷月老师」

把「月谷老师」渲染成「谷月老师」

由于某个特殊的需求,我需要在文本编辑器或办公软件中把「月谷老师」渲染成「谷月老师」,这样就需要使用 Unicode bidi (双向)格式化字符。

Unicode Bidi (双向)格式化字符

控制符 Unicode代码 简述 说明
LRM U+200E left to right mark 从左到右的零宽度字符
RLM U+200F right to left mark 从右到左的零宽度非阿拉伯字符
ALM U+061C arabic letter mark 从右到左的零宽度阿拉伯语字符
LRE U+202A left to right embedding 嵌入。把后面的文本看作是从左到右(LRE)的嵌入
RLE U+202B right to left embedding 嵌入。把后面的文本看作是从右到左(RLE)的嵌入
LRO U+202D left to right override 重写。强制改变其后的文本的方向为从左向右(LRO)
RLO U+202E right to left override 重写。强制改变其后的文本的方向为从右向左(RLO)
PDF U+202C pop directional formatting 嵌入和重写终止符。用于终止LRE、RLE、LRO、RLO的作用范围
LRI U+2066 left to right isolate 从左到右(LRI)隔离之后的文本
RLI U+2067 right to left isolate 从右到左(RLI)的隔离之后的文本,RLI、FSI、PDI是Unicode 6.3引入的
FSI U+2068 first strong isolate 隔离之后的文本,文本的方向由第一个非嵌套在隔离中的强字符决定
PDI U+2069 pop directional isolate 隔离终止符。用于终止LRI、RLI、FSI的作用范围,该终止符还会同时终止LRE、RLE、LRO、RLO的作用范围

bidi 控制字符搭配使用尝试记录

目的是让“月谷老师”在文本编辑器或办公软件中显示为“谷月老师”。

Notepad 3 成功案例

  1. RLO 月谷 PDF 老师: ‮月谷‬老师

  2. RLO 月谷 PDF LRM 老师: ‮月谷‬‎老师

  3. RLI RLO 月谷 PDF PDI LRI 老师 PDI: ⁧‮月谷‬⁩⁦老师⁩

Notepad 3 成功案例

HTML 成功案例

(浏览器是微软新 Edge。)

RLO 月谷 PDF 老师: ‮月谷‬老师

RLO 月谷 PDF LRM 老师: ‮月谷‬‎老师

RLI RLO 月谷 PDI LRI 老师 PDI: ⁧‮月谷⁩⁦老师⁩

HTML 成功案例

MS Word 失败案例

所有案例在 Word 中全部失败。

所有案例在 Word 中全部失败

在 Word 中试错一个上午,有如下发现:

  1. Word 不能识别 Unicode 6.3 引入的 LRI(U+2066)RLI(U+2067)FSI(U+2068)PDI(U+2069)四个控制符号。

  2. 对于字符串 RLO 月谷 PDF 老师,Notepad 3 可以准确地渲染成 谷月老师,但是 Word 死活只能渲染成 老师谷月。我猜测,Word的渲染过程是:先显示“月”,再把“谷”放在“月”左边,到了 PDF 的时候,再把“老”放在“谷”左边,但是把“师”放在“老”右边;而Notepad 3 的渲染过程与 Word 的不同之处是,到了 PDF 的时候,是把“老”放在“谷月”的右边。

  3. 对于字符串 RLO 月谷 PDF 老师,如果在它前面再加一个 RLELRE,Notepad 3 可以准确地渲染成“谷月老师”,但是 Word 死活只能渲染成“师老谷月”。我猜不出 Word 的渲染机制。

已尝试案例

  1. RLI … PDI: ⁧月谷⁩老师

  2. LRI … PDI: ⁦月谷⁩老师

  3. FSI … PDI: ⁨月谷⁩老师

  4. RLE … PDF: ‫月谷‬老师

  5. LRE … PDF: ‪月谷‬老师

  6. RLO … PDF: ‮月谷‬老师

  7. LRO … PDF: ‭月谷‬老师

  8. RLO … LRE: ‮月谷‪老师

  9. FSI RLO … PDF PDI: ⁨‮月谷‬⁩老师

  10. FSI LRO … PDF PDI: ⁨‭月谷‬⁩老师

  11. RLE RLO … PDF: ‫‮月谷‬老师

  12. RLO … PDF LRE: ‮月谷‬‪老师

  13. RLO … PDF LRM: ‮月谷‬‎老师

13 RLO … PDF LRO: ‮月谷‬‭老师

  1. RLE RLO … PDF PDF: ‫‮月谷‬‬老师

  2. LRE RLO … PDF PDF: ‪‮月谷‬‬老师

  3. LRE RLO … PDF: ‪‮月谷‬老师

  4. LRM RLO … PDF: ‎‮月谷‬老师

  5. LRE RLO 月谷 PDF LRO 老师 PDF PDF: ‪‮月谷‬‭老师‬‬

  6. LRO RLO 月谷 PDF LRO 老师 PDF PDF: ‭‮月谷‬‭老师‬‬

  7. LRO RLE 月谷 PDF LRE 老师 PDF PDF: ‭‫月谷‬‪老师‬‬

  8. LRO RLO 月谷 PDF LRE 老师 PDF PDF: ‭‮月谷‬‪老师‬‬

  9. LRI RLI 月谷 PDI LRI 老师 PDI PDI: ⁦⁧月谷⁩⁦老师⁩⁩

  10. LRI RLI 月谷 PDI RLI 师老 PDI PDI: ⁦⁧月谷⁩⁧师老⁩⁩

  11. RLI 月谷 PDI RLI 师老 PDI: ⁧月谷⁩⁧师老⁩

  12. RLI RLO 月谷 PDF PDI LRI 老师 PDI: ⁧‮月谷‬⁩⁦老师⁩

  13. RLI 月谷 PDI RLI 老师 PDI: ⁧月谷⁩⁧老师⁩

图片版权

题图:自制。

头图:该图片由 David MarkPixabay 上发布。


求扫码打赏
“我这么可爱,请给我钱 o(*^ω^*)o”

把「月谷老师」渲染成「谷月老师」
https://blog.kukmoon.com/4ff9dc74b3a9/
作者
Kukmoon谷月
发布于
2023年7月28日
许可协议