RTL(阿拉伯语)错放加上在python中唱到电话号码的末尾

RTL(阿拉伯语)错放加上在python中唱到电话号码的末尾,python,arabic,right-to-left,arabic-support,Python,Arabic,Right To Left,Arabic Support,我有一个阿拉伯语短信模板,上面有客户支持号码的占位符,并将占位符替换为实际电话号码(例如+987654400)。替换时,加号(+)放错了数字末尾,如987654400+ 示例代码: >>> >>> s = '{customer_number} فتش' >>> print s.replace('{customer_number}', '+987654400') 987654400+ فتش >>> print '+9876

我有一个阿拉伯语短信模板,上面有客户支持号码的占位符,并将占位符替换为实际电话号码(例如+987654400)。替换时,加号(+)放错了数字末尾,如987654400+

示例代码:

>>> 
>>> s = '{customer_number} فتش'
>>> print s.replace('{customer_number}', '+987654400')
987654400+ فتش
>>> print '+987654400'.join(s.split('{customer_number}'))
987654400+ فتش

>>> 
>>> s = u'{customer_number} فتش'
>>> print s.replace('{customer_number}', '+987654400')
987654400+ فتش
>>> print '+987654400'.join(s.split('{customer_number}'))
987654400+ فتش
Python版本2.7.6、2.7.10
OS:OSX 10.11.14
地点:英语

--
这不仅仅发生在终端上,首先我在API响应中注意到了这个问题,它有以下配置

Ubuntu 14.04.2 LTS

python 2.7.6
django 1.7.6
django tastypie 0.12.1

系统区域设置:英语

django项目语言环境:英语

不知何故,Osx
终端
正在用字符串变魔术。如果打印到文件,它将输出正确的字符串

终端中的python:

打印到文件:

文件内容:

问题确实出在终端上,因为如果我们这样做,我们会看到字符串的内容是正确的:

如果我们用拉丁字符填充它,它就不是做时髦的rtl的东西:

简历:
Osx和Windows终端具有rtl支持,可以使字符串混乱。python中字符串的内容是正常的,但是被操作系统破坏了。Ubuntu没有这个问题,因为那里的终端没有内置rtl支持。

您使用的是什么python版本?2.7.3工作正常。@Ricky python 2.7.6版,您的操作系统和语言环境是什么(阿拉伯语?)您刚更改了姓名吗?@RickyA用请求的信息更新了问题。是的,我刚换了名字;)这不仅仅是终端的问题,实际上它是连接在我的API响应中的,它具有以下配置python 2.7.6、django 1.7.6、django tastypie 0.12.1yey,很难判断出哪里出了问题,但可能你只会在显示东西的最后出现问题,数据库中的数据是否正确。是的,模板中的数据都是正确的,这很好,那么您只有一个显示问题:)是的,当然,但是当返回响应时,它会显示wired,并且还会写入日志:(