把「月谷老师」渲染成「谷月老师」
由于某个特殊的需求,我需要在文本编辑器或办公软件中把「月谷老师」渲染成「谷月老师」,这样就需要使用 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) |
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 成功案例
-
RLO 月谷 PDF 老师: 月谷老师
-
RLO 月谷 PDF LRM 老师: 月谷老师
-
RLI RLO 月谷 PDF PDI LRI 老师 PDI: 月谷老师
HTML 成功案例
(浏览器是微软新 Edge。)
RLO 月谷 PDF 老师: 月谷老师
RLO 月谷 PDF LRM 老师: 月谷老师
RLI RLO 月谷 PDI LRI 老师 PDI: 月谷老师
MS Word 失败案例
所有案例在 Word 中全部失败。
在 Word 中试错一个上午,有如下发现:
-
Word 不能识别 Unicode 6.3 引入的
LRI(U+2066)
、RLI(U+2067)
、FSI(U+2068)
、PDI(U+2069)
四个控制符号。 -
对于字符串
RLO 月谷 PDF 老师
,Notepad 3 可以准确地渲染成谷月老师
,但是 Word 死活只能渲染成老师谷月
。我猜测,Word的渲染过程是:先显示“月”,再把“谷”放在“月”左边,到了 PDF 的时候,再把“老”放在“谷”左边,但是把“师”放在“老”右边;而Notepad 3 的渲染过程与 Word 的不同之处是,到了 PDF 的时候,是把“老”放在“谷月”的右边。 -
对于字符串
RLO 月谷 PDF 老师
,如果在它前面再加一个RLE
或LRE
,Notepad 3 可以准确地渲染成“谷月老师”,但是 Word 死活只能渲染成“师老谷月”。我猜不出 Word 的渲染机制。
已尝试案例
-
RLI … PDI: 月谷老师
-
LRI … PDI: 月谷老师
-
FSI … PDI: 月谷老师
-
RLE … PDF: 月谷老师
-
LRE … PDF: 月谷老师
-
RLO … PDF: 月谷老师
-
LRO … PDF: 月谷老师
-
RLO … LRE: 月谷老师
-
FSI RLO … PDF PDI: 月谷老师
-
FSI LRO … PDF PDI: 月谷老师
-
RLE RLO … PDF: 月谷老师
-
RLO … PDF LRE: 月谷老师
-
RLO … PDF LRM: 月谷老师
13 RLO … PDF LRO: 月谷老师
-
RLE RLO … PDF PDF: 月谷老师
-
LRE RLO … PDF PDF: 月谷老师
-
LRE RLO … PDF: 月谷老师
-
LRM RLO … PDF: 月谷老师
-
LRE RLO 月谷 PDF LRO 老师 PDF PDF: 月谷老师
-
LRO RLO 月谷 PDF LRO 老师 PDF PDF: 月谷老师
-
LRO RLE 月谷 PDF LRE 老师 PDF PDF: 月谷老师
-
LRO RLO 月谷 PDF LRE 老师 PDF PDF: 月谷老师
-
LRI RLI 月谷 PDI LRI 老师 PDI PDI: 月谷老师
-
LRI RLI 月谷 PDI RLI 师老 PDI PDI: 月谷师老
-
RLI 月谷 PDI RLI 师老 PDI: 月谷师老
-
RLI RLO 月谷 PDF PDI LRI 老师 PDI: 月谷老师
-
RLI 月谷 PDI RLI 老师 PDI: 月谷老师
图片版权
题图:自制。
头图:该图片由 David Mark 在 Pixabay 上发布。