2

我想用 php 在文本文件中写阿拉伯文本,但我没有找到如何从右到左写文本。我发现这篇文章理解双向文本 他们解释说我应该在我的字符串之前添加 unicode 字符 U+202E 和 U+202C 之后。但我不知道如何在 php 中将此 unicode 字符转换为字符串。我尝试过这样的事情,$content = "\u{202E}".$content."\u{202C}"但没有奏效。

4

1 回答 1

3

是的,如果您的客户端不支持双向行为,您需要使用武力。这通常发生在纯文本环境中。有一种简单的方法可以在 PHP 中创建这样的文本,使用这些函数:

function utf8 ( $codepoint ) {
    // 200E = ltr mark
    // 200F = rtl mark
    return json_decode('"\u'.$codepoint.'"');
}

function rtl ( $string ) {
    return utf8('200f').$string.utf8('200e');
}

function ltr ( $string ) {
    return utf8('200e').$string.utf8('200f');
}

第一个函数翻译一个 unicode utf-8 代码点。第二个函数返回一个带有从右到左标记的字符串,第三个函数返回一个带有从左到右标记的字符串。在这两种情况下,字符串末尾都会恢复原始方向。

书写方向是否可视化仍然取决于客户。

于 2015-10-21T20:41:01.107 回答