从阿拉伯语字符串Php获取最后一封信

时间:2013-03-06 20:58:19

标签: php string utf-8 arabic

我一直在用阿拉伯字符工作一段时间。 看看这个:

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

打印时效果很好。

但是。我想得到最后一封信“م”。 我试过了

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

也尝试过子串。

获得此输出:

解决: 忘了添加:mb_internal_encoding(“UTF-8”); 非常感谢你们!

3 个答案:

答案 0 :(得分:3)

您尝试对多字节字符串使用字节类型操作(utf-8?-16?)您需要使用mb _ *()函数来处理多字节字符串:{{3} }

答案 1 :(得分:2)

试试这个:

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

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

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

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

答案 2 :(得分:1)

您应该将mb_strlen用于多字节字符串。这些字符占用多个字节,因此当您使用本机非mb函数获取它们时,您只占用该字符的一部分,这通常是一些乱码。 mb_*函数负责处理。