在Python 3中,这是
alternates={'Qabr Ḩamdān', 'قبور حمدان', 'Qabr Hamdan', 'Qubur Hamdan', 'Qubūr Ḩamdān', 'qbwr hmdan'}
for x in alternates:
print(12.1, x, 13.2)
产生此:
12.1 Qabr Ḩamdān 13.2
12.1 قبور حمدان 13.2
12.1 Qabr Hamdan 13.2
12.1 Qubur Hamdan 13.2
12.1 Qubūr Ḩamdān 13.2
12.1 qbwr hmdan 13.2
请注意第二行的阿拉伯字符串不正确。为什么?
答案 0 :(得分:2)
那是正常的。阿拉伯语使用Unicode。
阿拉伯语是从右到左书写的,当说阿拉伯语的人键入文本时,他们会期望阿拉伯语从右到左出现...但是他们会期望像{{ 1}},以从左到右的块嵌入整个从右到左的布局中。 Unicode双向算法尽了最大的努力来满足这一期望。细节非常复杂,并在Unicode Standard Annex #9中列出。