Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unicode 处理从右向左/从左向右覆盖用户输入中的字符_Unicode - Fatal编程技术网

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

Unicode 处理从右向左/从左向右覆盖用户输入中的字符,unicode,Unicode,我需要在字符串中嵌入用户输入;例如,“发送了一条消息” 如果用户输入包含一个方向性覆盖字符(U+202D或U+202E),则会出现问题。如果“”包含RLO字符,则显示的字符串变为“‪‮ 发送消息‬". 我的问题是如何最好地处理这个问题。RLO和LRO是否有合法的用途,或者将它们剥离出来是一个合理的选择?否则,也许我可以用“从左到右嵌入”(U+202A)和“弹出方向格式化”(U+202C)来包装用户输入,尽管这样做可能需要我确保用户输入不包含不平衡的PDF字符 RLO和LRO是否有合法用途,或者将

我需要在字符串中嵌入用户输入;例如,“发送了一条消息”

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

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

RLO和LRO是否有合法用途,或者将其剥离是一种可行的选择

我把它们和其他指定的角色一起剥去


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

RLO和LRO是否有合法的用途
,是的,例如引用希伯来语或任何其他RTL语言。您需要确定这是否会发生Pr.@ BrnsbA:为什么你需要RLO来引用RTL文本?我可以把LySuxScript脚本放在一些LTR文本的中间。我怀疑用户会花时间找出如何拼写单词/短语/句子。这不是相反的。你只需切换到希伯来脚本并开始打字,然后切换回。这比嵌入更自然。正在删除异国情调的unicode控制字符。谢谢@bobince。看起来去掉它们是正确的做法。值得注意的是,我在这里没有显式使用标记(如果是,我可以将输入包装到元素中,这将解决问题),所以我并不完全清楚该链接中的建议是否适用。我还对这些字符是否存在真正的非恶意使用感兴趣。