ホームページ  >  記事  >  バックエンド開発  >  単純な php コードが文字化けする原因を見つけるのを手伝ってください。言葉がありません。

単純な php コードが文字化けする原因を見つけるのを手伝ってください。言葉がありません。

WBOY
WBOYオリジナル
2016-06-23 14:15:091327ブラウズ

1. EditPlus を開きます

2. 新しい空の PHP ファイルを作成します

3.

<?phpecho "很好";?>


を書き込みます 4. utf-8 形式で保存します

5. 今すぐ出力されたページの寰?ソにアクセスします。文字化けした。


私の知る限り、その理由は、中国語を表示するには utf-8+BOM 形式で保存する必要があるからです。

ここで質問です:
1. PHP を学習したときから、PHP は UTF-8 BOM なしモードで保存する必要があることを知っていました。中国語の文字化けは問題ないようです。
2. いくつかの cms およびフレームワーク php ファイルを確認しましたが、それらはすべて utf-8 no-BOM モードであり、no-BOM モードでの上記の中国語文字化けの問題はどのように回避されたのでしょうか。



ディスカッションへの返信 (解決策)

理由は、ブラウザのデフォルトが gbk エンコードであるため、文字化けするためです。ヘッダーを使用して出力文字セットを指定するだけです。

理由は、ブラウザのデフォルトが gbk エンコードであるため、文字化けが発生するためです。ヘッダーを使用して出力文字セットを指定するだけです。

これも文字化けしています。BOM のない形式で保存してみても問題ありません。



ヘッダーの設定は問題ありません。それは私が理解できる問題ですか?今では次のように理解しています:


1.php ファイルは BOM フリー形式で保存されます。

2. PHPページに中国語が含まれている必要があります。ページとして出力する場合はヘッダーを指定する必要があります。出力および表示しない場合はヘッダーを指定する必要はありません。



1. UTF-8 エンコーディングとして保存する場合は、BOM ヘッダーを削除する必要があります。
2. 原則はこれですが、詳細はニーズによって異なります。


ヘッダーは設定でき、コード化けもありません 私の理解に問題はありませんか?今では次のように理解しています:


1.php ファイルは BOM フリー形式で保存されます。

2. PHPページに中国語が含まれている必要があります。ページとして出力する場合はヘッダーを指定する必要があります。出力および表示しない場合はヘッダーを指定する必要はありません。
このように理解できます。設定されたヘッダーのエンコーディングは、出力するエンコーディングと一致している必要があります。
私が学習を始めた当初は、コードが文字化けするたびに、次のようにまとめました。 Web ページが文字化けする場合は、次の 3 つのコードを覚えておいてください。

1. ドキュメント ストリーム: header("Content-type:text/html;charset=utf-8"); 2. データベース: $pdo-> ;query('SET NAMES UTF8');

3.PHP スクリプト ファイル: BOM 形式なしの utf-8。


将来、php_cli を実行するときは、utf-8 を使用できなくなります。最初にそれを覚えておく必要があります。

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