PHP統一ページ符号化乱符号化の問題を避ける

1526 ワード

ページエンコーディング統合
MySQLデータベースエンコーディング、htmlページエンコーディング、PHPまたはhtmlファイル自体のエンコーディングはすべて一致します.
1、MySQLデータベース符号化:データベースの構築時に符号化(例えばgbk_chinese_ci)を指定し、データテーブルの作成、フィールドの作成、データの挿入時に符号化を指定しないで、自動的にデータベースの符号化を継承する.データベース接続時にも符号化があり、データベース接続後にmysql_query(‘SET NAMES gbk’);//gbkをutf 8のようなあなたの符号化に変えることができる.
2、htmlページのコードは、この行の設定を指します.
 
  


3、PHPまたはhtmlファイル自体の符号化:editplusでphpファイルまたはhtmlファイルを開き、保存するときに選択した符号化、データベースとページ符号化がgbkであれば、ここの符号化はansiを選択し、データベースとページ符号化がutf-8であれば、ここでもutf-8を選択する.
4、JavascriptまたはFlashで伝達されるデータはutf-8符号化である:
また、JavascriptまたはFlashで渡されるデータはutf-8符号化であり、データベースとページ符号化がgbkの場合、トランスコードしてデータベースに書き込むことに注意してください.
 
  
iconv('utf-8', 'gbk', $content);

5、PHPプログラムにおいて、1行を加えて、PHPソースプログラムのコードを指定することができる:
 
  
header('Content-type: text/html; charset=gbk');

phpページエンコーディング
1.ファイルヘッダにエンコードを設定する
 
  
@header('Content-type: text/html;charset=UTF-8');
?>

2.headerとmetaの違い
@header('Content-type:text/html;charset=gbk');との違いはブラウザにどんなコードでページを表示するか、何が違うかを教えることであり、headerは元のHTTPヘッダーを送信し、ページに何も残さず、metaはページに書かれている.
一つは,ウェブページにmetaがなければ,HTTPヘッダを送信することが役に立つ.
二つ目は、ヘッダ()関数で元のHTTPヘッダを送信し、より多くのコンテンツを含むことができ、設定符号化はそのうちの1つにすぎない.
3つ目は、Webページに何かを表示しない場合がありますが、ブラウザにどのコードで後続の動作を行うかを通知することです.