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 に答える