如何嵌入任意 unicode 而不会弄乱该行的其余部分?
How do I embed arbitrary unicode without messing up the rest of the line?
所以我们有 header|sequence|string1|string2|directive
,其中 string1 和 string2 是任意的 Unicode 垃圾。假设输入可能真的是无用的 Unicode(我希望它包含诸如从右到左的文本、不平衡的 Unicode 方向控制字符等内容)但实际上并不是恶意的,我如何才能让这些字符串按顺序显示?
最终网站目标是 HTML,但我们认为最好尽可能处理字符串。在每个 |
之前盲目地干扰 force-LTR 是远远不能接受的,因为这往往会在 |
之后进入文本并导致 RTL 呈现为 LTR。
第一步:将控制代码替换为control pictures
第二步:修复 RTL 废话 ??
我不得不承认我原以为 RTL stack 会比原来更简单。我不能简单地 运行 算法,因为无法知道私人使用字符的 RTL-LTR-ness。
我们最终采用了这种笨拙的方法。有用。 (请注意,在生产代码中,这些内联样式会变成 class 引用。)
<PRE><DIV DIR=LTR STYLE="display:inline-block;">|</DIV><DIV STYLE="display:inline-block;">something1</DIV><DIV DIR=LTR STYLE="display:inline-block;">|</DIV><DIV STYLE="display:inline-block;">something2</DIV><DIV DIR=LTR STYLE="display:inline-block;">|</DIV></PRE>
所以我们有 header|sequence|string1|string2|directive
,其中 string1 和 string2 是任意的 Unicode 垃圾。假设输入可能真的是无用的 Unicode(我希望它包含诸如从右到左的文本、不平衡的 Unicode 方向控制字符等内容)但实际上并不是恶意的,我如何才能让这些字符串按顺序显示?
最终网站目标是 HTML,但我们认为最好尽可能处理字符串。在每个 |
之前盲目地干扰 force-LTR 是远远不能接受的,因为这往往会在 |
之后进入文本并导致 RTL 呈现为 LTR。
第一步:将控制代码替换为control pictures
第二步:修复 RTL 废话 ??
我不得不承认我原以为 RTL stack 会比原来更简单。我不能简单地 运行 算法,因为无法知道私人使用字符的 RTL-LTR-ness。
我们最终采用了这种笨拙的方法。有用。 (请注意,在生产代码中,这些内联样式会变成 class 引用。)
<PRE><DIV DIR=LTR STYLE="display:inline-block;">|</DIV><DIV STYLE="display:inline-block;">something1</DIV><DIV DIR=LTR STYLE="display:inline-block;">|</DIV><DIV STYLE="display:inline-block;">something2</DIV><DIV DIR=LTR STYLE="display:inline-block;">|</DIV></PRE>