ホームページ >php教程 >php手册 >PHPの文字化け問題を解決する2つの方法

PHPの文字化け問題を解決する2つの方法

WBOY
WBOYオリジナル
2016-06-13 12:01:301219ブラウズ

PHP Web ページの文字化けは、通常、データベース作成時に使用したエンコーディングと PHP Web ページのエンコーディングの違いが原因で発生します。

phpmyadmin で作成したデータベースのエンコーディングを指定しない場合、デフォルトは latin1_swedish_ci エンコードになっており、スウェーデン語はサイズに依存しないことを意味します。また、中国で作成した Web ページは GBK または GB2312 でエンコードされているため、文字化けが発生しないのは奇妙です。 🎜>1. データベースを作成するときにエンコードを指定します。

初心者の混乱を避けるために、一般的に使用されるエンコードについて説明します。
簡体字中国語を作成する場合Web ページの場合、データベースを構築するときに GB2312 エンコード、gb2312_chinese_ci を使用します。

これは繁体字中国語の Web ページであるため、データベースを作成するときは gib5 エンコード、big5_chinese_ci
を使用する必要があります。
作成する Web ページに簡体字中国語と繁体字中国語の両方が含まれている場合は、GBK エンコーディング (gbk_chinese_ci) を使用することをお勧めします。GBK には GB2312 よりも多くの文字コードが含まれています。もちろん、繁体字中国語も含まれます。多言語の Web ページを作成している場合は、UTF-8 エンコーディングを使用することをお勧めします。mysql には utf8_unicode_ci と utf8_general_ci という 2 つの utf8 エンコーディング オプションがあります。これら 2 つのエンコーディングの違いについては、こちらをご覧ください。このサイトの別の記事を参照してください: Mysql の校正セット utf8_unicode_ci と utf8_general_ci の違い

図に示すように、例として UTF-8 エンコーディングを使用してデータベースを作成します。





2. PHP でデータベースに接続するときに、mysq_query を使用してエンコーディングを設定します。

構文: mysql_query("SET NAMES 'utf8'"); 🎜> 例:


コードをコピー

コードは次のとおりです:

$conn=mysql_connect('127.0.0.1' ,'root',' 123456'); mysql_query("set names 'utf8'",$conn); //文字化けを解決しますmysql_select_db('test1',$conn); > 一般的に、この 2 つの手順を実行する限り、プログラムは文字化けしません。

2 番目の一般的な状況:

2 番目の一般的な状況は、一般にあまり発生せず、ほとんどの場合発生します。たとえば、utf8 を作成する場合、gb2312 を作成する場合、big5 の Web ページを作成する場合など、さまざまな言語があります。IDE で作成された .php ファイルのエンコーディングは、IDE で作成されるエンコーディングとは異なります。
たとえば、前回は gb2312 簡体字中国語 Web ページを作成しましたが、今度は上司から gbi5 Web ページを作成するように頼まれましたが、私の IDE は gb2312 エンコードを使用しています
私がよく使用する IDE Dreamweaver を例として挙げます



IDE で作成した新しい Web ページは gb2312 ですが、文字化けしないようにするにはどうすればよいですか? 解決方法は非常に簡単です。新しい Web ページとして保存し、エンコーディングを指定します。 , それでも理解できない場合は、Web ページの先頭に http ヘッダー情報の行を追加してください

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

注: ヘッダー情報を送信する場合、スペースを含めてヘッダーの前に何も出力することはできません。

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