ホームページ >バックエンド開発 >PHPの問題 >substr php が文字化けする問題を解決する方法

substr php が文字化けする問題を解決する方法

藏色散人
藏色散人オリジナル
2020-11-01 15:02:022503ブラウズ

php substr 関数は、中国語の UTF-8 エンコーディングが原因で文字化けします。各中国語文字は 3 バイトを占有しますが、GB2312 は 2 バイトを占有し、英語は 1 バイトを占有します。インターセプトされた桁数が不正確であるため、文字化けが発生します。解決策は、mb_substr 関数を使用することです。

substr php が文字化けする問題を解決する方法

# 推奨: 「

PHP ビデオ チュートリアル

php は文字化けした文字列のインターセプトの問題を解決します

Question

日々の開発では文字列インターセプトの関数がよく使われます。よく使われる関数はsubstr()です。以下は例です:

<?php
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>

Use substr 関数は漢字に遭遇すると文字化けを起こしやすくなります。これは、中国語の UTF-8 エンコーディングでは、各中国語の文字が 3 バイトを占有するのに対し、GB2312 は 2 バイトを占有し、英語は 1 バイトを占有するためです。インターセプトされる桁の数は不正確です。substr() は、中国語の文字を突然 2 つの半分に「切断」します。 、切断された文字が 1 つの単語にまとめられるため、PHP substr 中国語の文字化けが発生します。

解決策

mb_substr() 関数を使用できます。以下に例を示します:

echo mb_substr("php中文字符encode",0,4,"utf-8");

以上がsubstr php が文字化けする問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。