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

时间:2016-05-16 00:05:59

标签: python-2.7 unicode-string

我试图在一行中打印一个字符串,后跟一个空格,然后是一个数字。该字符串来自unicode中的长列表,其中一些(但不是全部)是从右到左的格式。我的问题是,当我使用这种格式的字符串时,我想要的顺序会被颠倒。

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

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

输出

abcd 1
אבגד1  

第一个输出是所需的顺序,但第二个输出不是。有没有办法避免这种逆转?

另外,我只需要使用Python Standard Library

1 个答案:

答案 0 :(得分:0)

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

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

有关详细信息,请参阅https://en.m.wikipedia.org/wiki/Left-to-right_mark