【发布时间】:2018-09-08 21:34:25
【问题描述】:
我想echo
这一行:
$mother_name = "סבטלנה ואסילבנה";
echo strrev($mother_name);
结果是:�נבליסאו� �נלטבס�
怎么了?我从哪里得到这个� 符号。
当我尝试echo 字符串中的单个字符时
我也得到� 例如$mother_name[0]
【问题讨论】:
-
我认为 PHP 在处理希伯来字符的字符集时遇到了困难,不过我可能错了..
-
您不应该反转字符串,您应该使用 RTL 标记将希伯来语嵌入到其他 LTR 文档中。 en.wikipedia.org/wiki/Right-to-left_mark
-
遗憾的是,几乎所有的 str* 函数都不适合多字节编码。它们作用于单个字节,而不是字符。
-
不确定它是否有用,但我刚刚用 Scala 测试了它(使用与 Java 相同的 JVM 字符串),它会在正向打印 סבטלנה ואסילבנה 和 הנבליסאו הנלטבס 如果字符串反转。 Afair php 的字符串是字节数组,不能很好地处理 unicode...
-
@bobblebubble 你也不能像这样简单地反转一个 UTF 字符串,如果它包含组合标记、变音符号或其他类似的代码点,它会破坏字符串的内容。
标签: php right-to-left hebrew