ホームページ  >  記事  >  バックエンド開発  >  PHPで文字化けせずに中国語の傍受を実現する方法

PHPで文字化けせずに中国語の傍受を実現する方法

PHPz
PHPzオリジナル
2023-03-31 09:06:151137ブラウズ

PHP は、Web アプリケーションの開発で広く使用されている人気のあるサーバー側プログラミング言語です。 Web アプリケーションでは、中国語の文字を破壊せずに文字列をインターセプトする必要があることがよくあります。しかし、従来のPHPの文字列インターセプト方法では中国語が文字化けするなどの問題が発生することが多く、本記事ではPHPで文字化けのない中国語インターセプトを実現する方法を紹介します。

1. 従来のインターセプト メソッドの問題

PHP には文字列をインターセプトするメソッドが多数あり、一般的なメソッドには substr()、mb_substr()、iconv_substr() などが含まれます。ただし、これらのメソッドが中国語の文字列をインターセプトすると、中国語の文字化けや不正確なインターセプトなどの問題が頻繁に発生します。以下にいくつかの例を見てみましょう。

  1. substr() 関数を使用して中国語の文字列をインターセプトします

$str = "プログラミングが大好きです。プログラミングは私を幸せにしてくれます!";
$substr = substr($str, 0, 6);
echo $substr;
?>

上記のコードは、漢字化けせずに「I love programming」を出力します。質問。ただし、漢字の「プログラミング」を傍受しようとすると、substr() 関数の使用に問題が発生します。

$str = "私はプログラミングが大好きです、プログラミングは私を幸せにします!";
$substr = substr($str, 3, 6);
echo $substr;
?>

上記のコードは、中国語の「program, programming」を出力します。文字 "プログラミング" "切り詰められました。この結果は明らかに私たちが望んでいたものではありません。

  1. mb_substr() 関数を使用して中国語の文字列をインターセプトする

mb_substr() 関数は、PHP の組み込み文字列インターセプト関数であり、マルチバイト文字をサポートしています。漢字化け問題を回避できます。まず、mb_substr() 関数の基本的な使用法を見てみましょう:

$str = "プログラミングが大好きです、プログラミングは私を幸せにしてくれます!";
$substr = mb_substr($ str, 0, 6, 'utf-8');
echo $substr;
?>

上記のコードは「I love programming」を出力し、漢字化けの問題もありません。ただし、漢字の「プログラミング」を傍受しようとすると、mb_substr() 関数を使用すると問題も発生します。

$str = "私はプログラミングが大好きです。プログラミングは私を幸せにしてくれます。 ";
$substr = mb_substr($str, 3, 6, 'utf-8');
echo $substr;
?>

上記のコードは「Cheng」を出力します。 」、「プログラミング」という漢字が切り捨てられます。

2. 解決策

従来の傍受方法の問題に対応して、次の方法を使用して文字化けせずに中国語の傍受を実現できます。中国語文字列を UTF-8 エンコーディングに変換

  1. PHP では、mb_convert_encoding() 関数を使用して中国語文字列を UTF-8 エンコーディングに変換できます。 UTF-8 は可変長の Unicode 文字エンコーディングであり、中国語を含む世界中のほぼすべての文字を表すことができます。まず中国語の文字列を UTF-8 エンコーディングに変換して、文字列をインターセプトするときに中国語の文字が正しく処理できるようにします。以下に例を示します。
$str = "プログラミングが大好きです。プログラミングは私を幸せにしてくれます!";

$str = mb_convert_encoding($str, 'UTF-8', 'auto');

echo $str;
?>

上記のコードは、$str 文字列を UTF-8 エンコードされた出力に変換します。

mb_substr() 関数を使用して文字列をインターセプト

  1. 中国語の文字列を UTF-8 エンコーディングに変換した後、mb_substr() 関数を使用して文字列をインターセプトできます。弦 。 mb_substr()関数の使い方は前述と同様で、文字列、開始位置、長さ、エンコード方法などのパラメータを指定する必要があります。以下に例を示します。
$str = "プログラミングが大好きです。プログラミングは私を幸せにしてくれます!";

$str = mb_convert_encoding($str, 'UTF-8', 'auto');

$substr = mb_substr($str, 3, 6, 'utf-8');
echo $substr;
?>

上記のコードは、 「プログラミング」を出力すると、中国語の文字は正しくインターセプトされます。
3. 概要

中国語文字列のインターセプトは常に厄介な問題であり、従来の PHP 文字列インターセプト方法では、中国語の文字化けや不正確なインターセプトが発生することがよくあります。中国語の文字列を UTF-8 エンコーディングに変換すると、mb_substr() 関数を使用して文字列をインターセプトできるため、文字化けすることなく中国語のインターセプトの問題を解決できます。

以上がPHPで文字化けせずに中国語の傍受を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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