echo mb_strlen($s,"gbk");3 も理解できますか?"/> echo mb_strlen($s,"gbk");3 も理解できますか?">
ホームページ >バックエンド開発 >PHPチュートリアル >gbk エンコードの戻り結果が 3 になるのはなぜですか?
php > $s="Hello";
php > echo mb_strlen($s,"utf8");
2
utf8 は 2 を返します
php >
4
これは4を返します、私も理解しています
php > echo mb_strlen($s,"gbk");
3
ここが理解できませんか?
php > $s="Hello";
php > echo mb_strlen($s,"utf8");
2
utf8 は 2 を返します
php >
4
これは4を返します、私も理解しています
php > echo mb_strlen($s,"gbk");
3
ここが理解できませんか?
$s は UTF8 でエンコードされているため、GBK に変換せずに GBK エンコードを通じてその長さを取得できます。
UTF8 エンコード你好
在GBK上是浣犲ソ
なので、長さは 3 です。
これがあなたがすべきことです:
リーリーつまり、GB2312も間違っています。
mb_strlen は返される文字数なので、2 を返すだけが正しいのですか。4 と 3 の 2 つのケースをどのように理解すればよいでしょうか。
ただし、 $s = "你好"
的时候,$s
は UTF8 でエンコードされた文字列を格納します (ソース ファイルのエンコードに応じて) GBK または GB2312 を使用してこのエンコードされたデータをデコードすると文字化けが発生する可能性があるため、4 と 3 は文字化けの長さにする必要があります。