ホームページ > バックエンド開発 > PHPの問題 > 文字化けのないPHP中国語インターセプト機能

文字化けのないPHP中国語インターセプト機能

(*-*)浩
リリース: 2023-02-23 18:40:01
オリジナル
3910 人が閲覧しました

文字化けのないPHP中国語インターセプト機能

Substr は文字列をインターセプトするために PHP でよく使用されますが、これを中国語の文字をインターセプトするために使用すると、次のような文字化けが発生します。

<?php
$mystring="今天天气真好";
$mysubstring=substr($mystring,0,2);
echo $mysubstring;
?>
ログイン後にコピー

出力結果is �; (推奨学習: PHP プログラミング入門から熟練度まで )

原因分析: substr 関数のプロトタイプは次のとおりです: string substr (string $string, int $ start [, int $length ] )、$length は返されるバイト長を表し、中国語の文字は 2 バイトを占めます。UTF-8 の中国語文字の場合、3 バイトとして扱われます。

<?php
$length=strlen($mystring);echo $length;//输出结果为18
?>
ログイン後にコピー

つまり、$length を 3 にすると、「Jin」という単語が正常に返されます。この場合、中国語と英語が混在している場合は、$length を慎重に計算する必要があります。

では、もっと良い解決策はあるのでしょうか? Php は追加関数 mb_strlen および mb_substr

<?php
$length=mb_strlen($mystring);
$mysub=mb_substr($mystring,0,4);
echo "the length is:$length,","the substr is:$mysub";
?>
ログイン後にコピー

出力結果は次のとおりです: 長さ: 6、部分文字列: 今日の天気

mb_strlen 関数 プロトタイプis int mb_strlen(string string_input, string encode); エンコードのデフォルトは UTF-8 で、UTF-8 でエンコードされた中国語の文字は

注: mb_strlen と mb_substr としてカウントされます。これらは PHP のコア関数ではありません。使用する前に、php.ini で extension=php_mbstring.dll を開く必要があります。

以上が文字化けのないPHP中国語インターセプト機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
PHP 拡張子 intl
から 1970-01-01 08:00:00
0
0
0
phpのデータ取得?
から 1970-01-01 08:00:00
0
0
0
PHP GET エラー レポート
から 1970-01-01 08:00:00
0
0
0
phpを上手に学ぶ方法
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート