ホームページ >バックエンド開発 >PHPの問題 >PHPは文字列のエンコード形式を設定します

PHPは文字列のエンコード形式を設定します

藏色散人
藏色散人オリジナル
2020-08-13 09:45:334013ブラウズ

php で文字列エンコード形式を設定する方法は、コードの先頭に「header("Content-Type: text/html;charset=utf-8");」というコード行を追加することです。 」。

PHPは文字列のエンコード形式を設定します

推奨: 「PHP ビデオ チュートリアル

php 文字エンコーディングを utf-8# に設定します。

##コードの先頭に行を追加します:

header("Content-Type: text/html;charset=utf-8");

関連紹介:

PHP 文字列の本質

説明は PHP ドキュメントから引用:

PHP における string の実装は、バイトの配列にバッファ長を示す整数を加えたものです。バイトを文字に変換する方法に関する情報はなく、プログラマが決定する必要があります。文字列内のどこにでも出現できる値 0 のバイトを含め、文字列を構成する値に制限はありません。

PHP では文字列のエンコードが指定されていません。文字列がどのようにエンコードされるかはプログラマによって異なります。文字列は、PHP ファイルのエンコードに従ってエンコードされます。たとえば、ファイルのエンコードが GBK の場合、コードの内容はすべて GBK になります。

バイナリ セーフティの概念を補足すると、値 0 (NULL) のバイトは文字列内の任意の位置に存在することができ、PHP の一部の非バイナリ関数の最下層は、次と呼ばれる C 関数です。 、 NULL の後の文字は無視されます。

PHP のファイル エンコーディングが ASCII と互換性がある限り、文字列操作は適切に処理できます。ただし、文字列操作は (ファイルのエンコードに関係なく) 本質的にはネイティブであるため、使用する場合は注意する必要があります。

一部の関数は、文字列がシングル バイトでエンコードされていることを前提としていますが、そうではありません。バイトは特定の文字として解釈されます。たとえば、sbustr() 関数です。

多くの関数はエンコード パラメータを明示的に渡す必要があります。そうでない場合は、htmlentities() 関数などのデフォルト値が PHP.INI ファイルから取得されます。

ローカル領域に関連する関数もいくつかありますが、これらの関数はシングルバイトでのみ動作します。

通常の状況では、PHP は内部的に Unicode 文字をサポートしていませんが、UTF-8 エンコーディングをサポートしています。ほとんどの場合、問題はありませんが、次の状況は処理できない場合があります。

非 UTF-8 エンコード文字列を変換する方法

##UTF-8 でエンコードされた Web ページですが、ユーザーがフォームを送信するときに GBK エンコードを使用する可能性があります (メタ タグに準拠していません)

UTF-8 でエンコードされた PHP ファイルの場合、strlen("China") を使用すると、実際の文字数ではなく 6 が返されます (2)

それでは、この問題を解決するにはどうすればよいでしょうか? PHP は mbstring 拡張機能を提供します。

以上がPHPは文字列のエンコード形式を設定しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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