似乎使用组合从左到右(LTR)和从右到左(RTL)文本paste
可能会产生意想不到的结果:
(x = paste(c('green', 'أحمر', 'أزرق'), collapse=' ')) # arabic for blue and red
#> [1] "green أحمر أزرق"
paste(x, 'yellow')
#> [1] "green أحمر أزرق yellow"
paste(x, 123)
#> [1] "green أحمر أزرق 123"
是否有任何已知的解决方案 - 即确保按照与给出的参数相同的顺序进行串联的方法?也许答案是不要连接不同的字母!
您可以使用 Unicode 控制字符“从左到右嵌入” http://unicode.org/reports/tr9/#Explicit_Directional_Embeddings, u202A
(“将以下文本视为从左到右嵌入”):
paste(x, "\u202A", 123)
# [1] "green أحمر أزرق 123"
也可以看看终止显式定向嵌入和覆盖 http://unicode.org/reports/tr9/#Terminating_Explicit_Directional_Embeddings_and_Overrides, (u202C
),详细描述UNICODE 双向算法 http://unicode.org/reports/tr9/, and here https://xkcd.com/1137/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)