検索
ホームページphp教程php手册php strlen mb_strlen は中国語と英語が混在した文字列の長さを計算します

php strlen mb_strlen は中国語と英語が混在した文字列の長さを計算します

Jun 13, 2016 pm 12:23 PM
phpstrlenそしてキャラクターはい比較する英文計算する長さ

strlen と mb_strlen を比較してください
文字がすべて英語の場合、この 2 つは同じです。ここでは主に中国語と英語が混在した場合の 2 つの計算結果を比較します。 (テスト時のエンコード方式はUTF8です)

コードをコピー コードは次のとおりです:


$str= '中国語 1 文字';
echo strlen($str);
echo mb_strlen($str,'UTF8'); 🎜>// 出力結果
//14
//6
?>


結果の分析: strlen を計算するとき、UTF8 の漢字は 3 つの長さとして扱われます。 so " 「中国語の文字 1 文字」の長さは 3*4 2=14 です

mb_strlen を計算する際、内部コードが UTF8 に選択されている場合、中国語の文字は長さ 1 として計算されますので、 "中国語 a 文字 1 文字" 長さは 6

中国語と英語の混合文字列のプレースホルダーの計算について:
これら 2 つの関数を使用すると、中国語と英語のプレースホルダーを一緒に計算できます。混合文字列 (中国語の文字の占有率は 2、英語の文字の占有率は 1) 計算方法は、混合文字列に中国語の文字と英語の文字が含まれる場合、占有率は次のとおりです:

コードをコピー コードは次のとおりです:

$str='中国語 1 文字'; >//計算は以下の通りです
echo (strlen($str) mb_strlen($str,'UTF8')) / 2;
echo
//結果を出力します
//10
?>


例えば、「中国語 1 文字 1 文字」の strlen($str) の値が 14、mb_strlen($str) の値が 6 であれば計算できます。
添付ウェブサイトの記事: 中国語についてまだ質問があります。 PHP の組み込みの文字列長関数 strlen は、中国語の文字列を正しく処理できません。文字列が占有するバイト数のみを取得します。 GB2312 中国語エンコードの場合、strlen によって取得される値は中国語の文字数の 2 倍ですが、UTF-8 エンコードされた中国語の場合、その差は 3 倍になります (UTF-8 エンコードでは、1 つの中国語文字は 3 バイトを占めます)。

mb_strlen 関数を使用すると、この問題をより適切に解決できます。 mb_strlen の使用法は strlen と似ていますが、文字エンコーディングを指定する 2 番目のオプションのパラメーターがある点が異なります。たとえば、UTF-8 文字列 $str の長さを取得するには、mb_strlen($str,'UTF-8') を使用できます。 2 番目のパラメータを省略した場合は、PHP の内部エンコーディングが使用されます。内部エンコーディングは、mb_internal_encoding() 関数を通じて取得できます。 mb_strlen は PHP のコア関数ではないことに注意してください。これを使用する前に、php_mbstring.dll が php.ini にロードされていること、つまり「extension=php_mbstring.dll」という行が存在することを確認する必要があります。コメントアウトされていない場合は、関数の問題が未定義になります。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境