ホームページ >バックエンド開発 >PHPチュートリアル >コード化けの問題を回避するための PHP 統合ページ エンコーディング、PHP ページ エンコーディングが文字化けする_PHP チュートリアル
統合ページエンコーディング
MySQL データベースのエンコーディング、HTML ページのエンコーディング、PHP または HTML ファイル自体のエンコーディングはすべて一貫している必要があります。
1. MySQL データベースのエンコーディング:
データベース作成時にエンコーディング(gbk_chinese_ciなど)を指定します。 データテーブルやフィールドの作成時、データの挿入時にエンコーディングを指定しないでください。データベースのエンコーディングが自動的に継承されます。
データベースに接続するときは、エンコーディングも必要になります。データベースに接続した後、mysql_query('SET NAMES gbk'); // gbk を utf8 などのエンコーディングに置き換えます。
2. HTML ページのエンコーディングは次の行の設定を参照します:
コードをコピーします コードは次のとおりです:
3. PHP または HTML ファイル自体のエンコーディング:
editplus を使用して php ファイルまたは html ファイルを開きます。データベースとページのエンコーディングが gbk の場合は、ここでエンコーディングとして ansi を選択します。ここでも。
4. Javascript または Flash で渡されるデータは utf-8 でエンコードされます:
もう 1 つ注意すべき点は、JavaScript または Flash で渡されるデータは utf-8 でエンコードされることです。データベースとページのエンコードが gbk の場合は、トランスコードしてからデータベースに書き込む必要があります。
コードをコピーします コードは次のとおりです:
iconv('utf-8', 'gbk', $content);
5. PHP プログラムで、PHP ソース プログラムのエンコーディングを指定する行を追加できます。
コードをコピーします コードは次のとおりです:
header('Content-type: text/html; charset=gbk');
phpページのエンコード
1. ファイルヘッダーのエンコーディングを設定します
コードをコピーします コードは次のとおりです:
@header('Content-type: text/html;charset=UTF-8');
?>
2.ヘッダーとメタの違い
@header('Content-type: text/html; charset=gbk'); と の使用の違い
これらはすべて、Web ページを表示するために使用するエンコーディングをブラウザーに指示します。違いがある場合、ヘッダーは元の HTTP ヘッダーを送信し、Web ページには何も残しませんが、メタは Web ページに書き込まれます。
2 番目に、header() 関数を使用して元の HTTP ヘッダーを送信します。これには、より多くのコンテンツを含めることができます。エンコーディングの設定はそのうちの 1 つにすぎません。
3 番目に、Web ページにコンテンツを表示する必要がない場合がありますが、後続のアクションに使用するエンコーディングをブラウザーに通知する必要があります。