ホームページ バックエンド開発 PHPチュートリアル mb_strlen に関する初心者の質問

mb_strlen に関する初心者の質問

Jun 13, 2016 pm 01:15 PM
character encoding mb quot strlen

mb_strlen についての初心者の質問です。
これら 3 つの呼び出しの戻り値がよくわかりません。 。

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php
echo mb_strlen("我的名字") . "<br/>"; //12
echo mb_strlen("我的名字","UTF-8") . "<br/>"; //4
echo mb_strlen("我的名字","GBK") //6
?>
ログイン後にコピー


コードは l.php に保存され、ファイルエンコーディングは utf8 です

の 2 番目のエンコーディングパラメータについてmb_strlen。 PHP のマニュアルには次のように書かれています。

「エンコーディングパラメータは文字エンコーディングです。省略した場合は、内部の文字エンコーディングの値が使用されます。」
エンコーディングがどの内部文字エンコーディングを指すのか知りたいです。 、どこで設定されていますか。

また、この関数の戻り値は次のように書きます。
「文字エンコーディングencoding を持つ文字列 str の文字数を返します。マルチバイト文字は 1 としてカウントされます。」
Multi -byte文字は1としてカウントされます。
では、なぜ最初の呼び出しでは 12 が返され、2 番目の呼び出しでは実際には 6 が返されるのでしょうか? 。 よくわかりません。説明していただけると幸いです、ありがとうございます。

-----解決策--------------------------
ディスカッション
そうそう、別の小さな問題があります。 PHP で他の DLL の関数を使用したい場合は、DLL を system32 にコピーしてから、php.ini に
extension=php_fdf.dll のようなコードを追加する必要がありますか?

------解決策---------
PHP コード

echo mb_strlen("私の名前") . "<br/>";
echo mb_strlen("私の名前","UTF-8") "<br/>";
echo mb_strlen("私の名前","GBK") //6
<br><font color="#e78608">------解決策------------------</font><br>
まず、ファイルのエンコーディングは utf-8 である必要があり、mb_internal_encoding は ISO-8859-1<br> に似ている必要があります。次に、utf8 の漢字は 3 バイト、gb は 2 バイトであり、mb_strlen は変換することを知っておく必要があります。マルチバイト文字は 1 としてカウントされるため、 <br><?php<br>echo mb_strlen("my name") になります。 // に従って、エンコードは指定されません。デフォルト ISO-8859- 1 計算、1 つの utf8 中国語文字は 3<br>echo mb_strlen("my name","UTF-8") "<br/>";文字は 1<br> echo mb_strlen("My name","GBK") //エンコーディングが間違っていると、GBK 内の 1 つの中国語文字は 2 としてカウントされますが、ファイルは utf8 なので、4 * 3 = 12 バイトになります/ 2 = 6 gbk 文字<br>?><div class="clear"></div>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

メモリの1gは何MBですか? メモリの1gは何MBですか? Mar 16, 2023 pm 04:19 PM

1gメモリは1024MBです。 g は中国語で「ギガバイト」を意味する「GB」を表し、MB は「メガバイト」を指します。GB と MB は両方とも、コンピュータのハード ドライブ、メモリ、その他のより大容量の記憶媒体の記憶容量を示すのに一般的に使用されます。 GB と MB 間の変換レートは 1000 (1024)、つまり「1GB=1024MB」にほぼ等しくなります。

1MB のストレージ容量は何バイトに相当します 1MB のストレージ容量は何バイトに相当します Mar 03, 2023 pm 05:42 PM

1MB のストレージ容量は、2 の 20 乗バイト、つまり 1,048,576 バイトに相当します。 MB はコンピュータの記憶単位であり、「メガ」と発音されます。1MB は 1024KB、1KB は 1024B (バイト) に等しいため、1MB は 1048576 (1024 *1024) バイトに相当します。

1g は何 MB のメモリ容量に相当します 1g は何 MB のメモリ容量に相当します Feb 03, 2023 pm 03:55 PM

1g は 1024MB のメモリ容量に相当します。 g の正式名称は「GB」で、中国語で「ギガバイト」を意味します。情報測定の 10 進単位であり、コンピュータのハードドライブ、メモリ、その他の大容量記憶媒体の記憶容量を示すためによく使用されます。 GB と MB 間の変換レートは、1000 (1024)、つまり「1GB = 1024MB」にほぼ等しくなります。

Java の Character.isDefined() 関数を使用して、文字が定義された文字かどうかを判断します Java の Character.isDefined() 関数を使用して、文字が定義された文字かどうかを判断します Jul 25, 2023 am 10:33 AM

Java の Character.isDefined() 関数を使用して、文字が定義された文字であるかどうかを判断します。Java プログラミングでは、文字が定義された文字であるかどうかを判断する必要がある場合があります。便宜上、Java では Character クラスの isDefined() 関数を提供しています。これは、文字が定義された文字であるかどうかを迅速に判断するのに役立ちます。この記事では、この関数の使用方法を説明し、いくつかのコード例を示します。文字クラスは Java の単一の文字を表します

Java は、Character クラスの isLetterOrDigit() 関数を使用して、文字が文字であるか数字であるかを判断します。 Java は、Character クラスの isLetterOrDigit() 関数を使用して、文字が文字であるか数字であるかを判断します。 Jul 24, 2023 pm 02:45 PM

Java では、Character クラスの isLetterOrDigit() 関数を使用して、文字が文字であるか数字であるかを判断します。Java プログラミングでは、文字に対して何らかの操作や判断を行う必要があることがよくあります。一般的なニーズの 1 つは、文字が文字であるか数字であるかを判断することです。 Java は、この関数の実装に役立つ Character クラスの isLetterOrDigit() 関数を提供します。 Characterクラスは、文字の操作や判定を行うためのラッパークラスです。

Java ドキュメントの解釈: Character クラスの isAlphabetic() メソッドの詳細な説明 Java ドキュメントの解釈: Character クラスの isAlphabetic() メソッドの詳細な説明 Nov 04, 2023 am 10:05 AM

Java ドキュメントの解釈: Character クラスの isAlphabetic() メソッドの詳細な説明 1. 概要 Java Character クラスでは、指定された文字が英字であるかどうかを判断するために isAlphabetic() メソッドが使用されます。これはブール値を返します。true は指定された文字がアルファベット文字であることを示し、false は指定された文字がアルファベット文字ではないことを示します。この記事では、このメソッドの使用法と原理を詳細に分析し、読者の理解を助けるコード例を提供します。

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Java の Character.isLetterOrDigit() 関数を使用して、文字が文字であるか数字であるかを判断します。 Java の Character.isLetterOrDigit() 関数を使用して、文字が文字であるか数字であるかを判断します。 Jul 25, 2023 pm 04:22 PM

Java の Character.isLetterOrDigit() 関数を使用して、文字が文字であるか数字であるかを判断します。Java では、文字が文字であるか数字であるかを判断する必要があることがよくあります。このプロセスを簡略化するために、Java には組み込み関数 Character.isLetterOrDigit() が用意されており、この判断を迅速に完了するのに役立ちます。 Character.isLetterOrDigit() 関数はパラメータとして文字を受け取ります

See all articles