2015-11-25 4 views
1

Возьмите следующий сценарий:Unicode справа налево текст

use strict; 
use warnings; 
use feature 'say'; 

my $utf8 = "العربي"; 
open my $out,">","out.txt"; 

say {$out} "utf8 with text foo".$utf8; 
say {$out} "utf8 with number 123".$utf8; 

Я не понимаю, что происходит с Направленность текста. В Notepad ++ номер выводится справа от арабского текста, а текст выходит слева. Когда я попытался вставить его в это текстовое поле, он вышел с номером слева.

Может ли кто-нибудь объяснить, что происходит?

ответ

2

Это связано с плохой поддержкой RTL в Notepad ++. Правильный порядок таков:

utf8 with text fooالعربي 
utf8 with number 123العربي 

Notepad ++ может подумать, что цифры в арабской строки так активировал RTL и начал писать с правой стороны. Это должно быть ошибкой для отправки.

Обходным способом является использование символов LTR/RTL

+1

спасибо. На данный момент мне удалось обойти это, добавив символ LTR (unicode U200E) между английским и арабским текстами – beasy