在用户输入中处理从右到左/从左到右的覆盖字符

时间:2017-01-05 14:03:08

标签: unicode

我需要在字符串中嵌入用户输入;例如,"< User>发了一条消息"。

如果用户输入包含一个方向性覆盖字符(U + 202D或U + 202E),则会出现问题。如果"< User>"包含一个RLO字符,显示的字符串变为"< User>发送一条消息"。

我的问题是如何最好地处理这个问题。是否有合法用途的RLO和LRO,或者正在剥离它们似乎合理的选择?否则也许我可以用"从左到右嵌入"来包装用户输入。 (U + 202A)和"流行方向格式" (U + 202C),尽管这样做可能需要我确保用户输入不包含不平衡的PDF字符。

1 个答案:

答案 0 :(得分:2)

  

RLO和LRO是否有合法用途,或者是否有合理的选择?

我将它们与指定为not suitable for use in markup的所有其他字符一起剥离。

合法性是一个有争议的观点,但真正的阿拉伯语/希伯来语/等键盘不能输入BiDi控制字符,因此您不太可能在非恶意用户输入中遇到它们。