ホームページ  >  記事  >  バックエンド開発  >  PHP文字化け問題を解決する2つの方法_PHPチュートリアル

PHP文字化け問題を解決する2つの方法_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:19:57854ブラウズ

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 にはより多くの文字が含まれています。 GB2312 よりもコードが多く、もちろん繁体字中国語も含まれています

多言語の Web ページを作成している場合は、mysql で 2 つの utf8 エンコーディングを選択することをお勧めします。著者は通常、utf8_general_ci を使用します。これら 2 つのエンコーディングの違いについては、このサイトの別の記事を参照してください: Mysql 校正セットの utf8_unicode_ci と utf8_general_ci の違いは、例として使用されています。図に示すようにデータベースを作成します:






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 ファイルのエンコーディングの違いによって発生します。プログラムによって表示されるエンコーディング
たとえば、前回は gb2312 の簡体字中国語 Web ページを作成しましたが、今度は上司から gbi5 の Web ページを作成するように頼まれましたが、私の IDE は gb2312 エンコーディングを使用しています
私がよく使用する IDE Dreamweaver を例に挙げます。例

IDEで新しく作成したWebページはgb2312なのですが、作成したWebページをbig5に変更したのですが、どうしたら文字化けしないでしょうか? 解決策は非常に簡単で、再度名前を付けて保存し、エンコーディングを指定するだけでOKです。

それでも理解できない場合は、Web ページの先頭に http ヘッダー情報の行を追加します

header("Content-Type: text/html;charset=utf-8"); : ヘッダー情報を送信する場合は、ヘッダーの前に配置してください。 スペースを含む出力はできません

さて、ここまで書いたところで、プログラムがどのような状況でコード化けを引き起こしているかを見てみましょう。




http://www.bkjia.com/PHPjc/325214.html

www.bkjia.com

tru​​e
http://www.bkjia.com/PHPjc/325214.html

技術記事 PHP Web ページの文字化けは、通常、データベース作成時に使用したエンコーディングと PHP Web ページのエンコーディングの違いが原因で発生します。phpmyadmin で作成したデータベースのエンコーディングを指定しない場合、デフォルトで latin1_swedis. が使用されます。 .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。