Почему заказ на печать смешан с поплавками и арабскими строками? - PullRequest
0 голосов
/ 17 сентября 2018

В 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

Обратите внимание, что арабская строка во второй строке вышла из строя.Почему?

1 Ответ

0 голосов
/ 17 сентября 2018

Это нормально. Арабский делает это в Юникоде.

Арабский пишется справа налево, и когда говорящий на арабском языке набирает текст, они ожидают, что арабский язык будет выходить справа налево ... но они будут ожидать цифры вроде 13.2 чтобы выступать как фрагменты слева направо, встроенные в общий макет справа налево. Двунаправленный алгоритм Unicode делает все возможное, чтобы оправдать это ожидание. Детали действительно сложны и изложены в Стандартном приложении Unicode # 9 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...