Python中阿拉伯文本与数值变量拼接后显示顺序倒置的问题解决咨询
解决阿拉伯文本与数字混合显示顺序倒置的问题
这个问题其实是双向文本排版的常见坑——阿拉伯语属于RTL(从右到左)语言,而数字默认是LTR(从左到右)方向,当两者混合时,系统的排版引擎会自动调整字符的显示顺序,导致数字跑到了阿拉伯文本的左侧。
要让数字稳定显示在阿拉伯文本的右侧,你可以借助Unicode的**Left-to-Right Mark(U+200E)**控制字符,它能强制后续的LTR内容(也就是你的数字)保持在RTL文本的右侧位置。
直接修改你的代码即可:
s1 = 'مرحبا بالجميع' s2 = '1' # 在数字前插入Left-to-Right Mark print('{} - {}'.format(s1, '\u200E' + s2))
运行这段代码后,输出就会符合你的预期:مرحبا بالجميع - 1
原理很简单:U+200E告诉排版引擎,接下来的内容要按照从左到右的方向渲染,同时保持它在RTL文本块的右侧位置,不会被自动反转顺序。
如果你的场景里有大量类似的混合文本需要处理,也可以把这个控制字符封装成一个小工具函数,方便重复使用:
def ltr_mark(text): return '\u200E' + text s1 = 'مرحبا بالجميع' s2 = '1' print('{} - {}'.format(s1, ltr_mark(s2)))
内容的提问来源于stack exchange,提问作者YaOo
相关产品推荐
相关产品推荐

