2

我已经使用阿拉伯字符有一段时间了。看这个:

$string = "السلام";

打印时完美运行。

但。我想得到最后一个字母“م”。我试过了

$string[strlen($string]-1)];

也尝试过子字符串。

得到这个输出:</p>

已解决:忘记添加:mb_internal_encoding("UTF-8"); 非常感谢你们!

4

3 回答 3

3

您正在尝试对多字节字符串(utf-8?-16?)使用字节类型操作,您需要使用 mb_*() 函数来处理多字节字符串: http: //php.net /mb_substr

于 2013-03-06T20:59:28.820 回答
2

尝试这个:

<?php
mb_internal_encoding("UTF-8");
$string = "السلام";
echo mb_substr($string, -1);
?>

您的代码也不正确(存在语法错误):

$string[strlen($string]-1)];
                      ^--should be )

$string[strlen($string)-1)];
于 2013-03-06T21:03:26.573 回答
1

您应该使用mb_strlen多字节字符串。这些字符占用超过一个字节,因此当您使用本机非 mb 函数获取它们时,您只占用字符的一部分,这通常是一些乱码。mb_*函数会解决这个问题。

于 2013-03-06T20:59:36.867 回答