如何使用unicode打印和保留从左到右的顺序

问题描述:

我试图在单行中打印一个字符串,后跟一个空格,然后跟一个数字。该字符串来自unicode中的一长串列表,其中一些(但不是全部)列表以从右向左的格式显示。我的问题是,当我使用这种格式的字符串时,我想要的顺序是相反的。如何使用unicode打印和保留从左到右的顺序

这里是一个最小的工作示例:

line1='abcd' 
line2='אבגד' 
print line1+' '+str(1) 
print line2+' '+str(1) 

的输出中是

abcd 1 
אבגד1 

第一输出处于所需的顺序,但第二个是没有的。有没有办法避免这种逆转?我需要使用Python Standard Library

在要打印的字符串的开头添加一个从左到右的标记(表示为u'\ u200E')。这是一个不可见的字符,它会强制文本的方向,所以它不会对以这种方式打印的文本产生负面影响。下面的代码生成所需的输出:

print u'\u200E'+line1+' '+str(1) 
print u'\u200E'+line2+' '+str(1) 

欲了解更多信息,请参阅https://en.m.wikipedia.org/wiki/Left-to-right_mark

+0

起初我以为我需要首先弄清楚哪些字符串是从右到左的语言,但事实证明我只需将该字符添加到所有字符串中,不会产生负面影响。另外,通过测试,我发现它需要在_before_之前,而不是在字符串之后。我可以在此基础上发布更完整的答案,但我不确定这是否是良好的礼仪。 –