我需要在 perl 中反转阿拉伯字符串的文本方向,就像我在这个Fiddle中使用 CSS 所做的那样。我是 perl 的新手,所以我需要一些指导来获得我的预期结果。
我正在寻找与Fiddle中所示完全相同的结果。我已经使用这个StackOverflow Question中的建议进行了尝试。
但是这段代码实际上是在颠倒文本中的单词顺序。如果我对阿拉伯文字做同样的事情,它会改变它的意思。
感谢帮助。
我需要在 perl 中反转阿拉伯字符串的文本方向,就像我在这个Fiddle中使用 CSS 所做的那样。我是 perl 的新手,所以我需要一些指导来获得我的预期结果。
我正在寻找与Fiddle中所示完全相同的结果。我已经使用这个StackOverflow Question中的建议进行了尝试。
但是这段代码实际上是在颠倒文本中的单词顺序。如果我对阿拉伯文字做同样的事情,它会改变它的意思。
感谢帮助。
您应该始终按书写顺序存储文本。文本的方向是您使用的 Unicode 字符的属性,用于读取文本的程序(文本编辑器、Web 浏览器等)应该实现Unicode 双向文本算法才能正确显示。如果您正在编写一个程序来显示文本(而不是仅仅生成它),您会发现Text::Bidi CPAN 模块很有帮助。
对于从右到左和从左到右语言的某些混合,双向算法可能会出错。在这些情况下,您可以在输出中添加 Unicode 方向标记。例如,如果阿拉伯语段落恰好以英文产品名称开头,您可以在开头插入RTL 标记,以便正确显示整个段落。在 Perl 中:
my $RLM = "\x{200F}"; # Unicode RIGHT-TO-LEFT MARK
say "${RLM}Quux ﻢﻧ ﺎﻠﻣﺎﻠﻛ: \"Centre D\'affaires\"";
</p>