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

标签 python arabic right-to-left arabic-support

我有一个阿拉伯语短信模板,其中包含客户支持号码的占位符,并将占位符替换为实际电话号码(例如 +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
操作系统:OSX 10.11.14
语言环境:英语

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

Ubuntu 14.04.2 长期支持

python 2.7.6
Django 1.7.6
django-tastypie 0.12.1

系统语言环境:英语
django 项目语言环境:英语

最佳答案

Osx terminal 以某种方式对字符串施展魔法。如果您打印到一个文件,它会输出正确的字符串。

终端中的python:

Python 2.7 in osx terminal

打印到文件:

enter image description here

文件内容:

enter image description here

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

enter image description here

如果我们用拉丁字符填充它,它就不会做时髦的 rtl 东西: enter image description here

简历: Osx 和 Windows 终端具有 rtl 支持,会混淆您的字符串。 python中的字符串内容是可以的,但是被os. Ubuntu 没有这个问题,因为那里的终端没有构建 rtl 支持。

关于python - RTL(阿拉伯语)错位加上在python中唱到电话号码的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36331992/

相关文章:

algorithm - 如何连接阿拉伯字母组成单词

flutter - 如何根据用户对 rtl 或 ltr 方向的输入动态本地化文本字段文本方向

ios - 表格单元格 View 未右对齐

python - 无法以所需方式从网页中获取两个字段

java - 将函数应用于 TextView 中的所有字符串

python - 如何将 python 连接到使用 docker 运行的 cassandra

python - 需要帮助在词干后再次连接我的标记和短语以形成字符串

html - 替代文本向后显示

python - 将值动态传递给 Ansible list - Python

python - 尝试安装 spacy 时遇到问题