ホームページ  >  記事  >  バックエンド開発  >  MySQL+PHP_PHP で発生する文字化けの原因分析と解決方法 チュートリアル

MySQL+PHP_PHP で発生する文字化けの原因分析と解決方法 チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:53:52883ブラウズ

mysqlチュートリアル+phpチュートリアルによる文字化けの解析と解決方法

◆ mysql データベースチュートリアルのデフォルトのエンコーディングは utf8 です。このエンコーディングが php Web ページと一致しない場合、mysql の文字化けが発生する可能性があります。

◆ MySQL でテーブルを作成するときに、エンコーディングを選択するように求められます。このエンコーディングが Web ページのエンコーディングと一致しない場合、MySQL の文字化けが発生する可能性があります。

◆ MySQL テーブルを作成するときにフィールドを追加するときにエンコーディングを選択できます。このエンコーディングが Web ページのエンコーディングと一致しない場合、MySQL の文字化けが発生する可能性もあります。

◆ ユーザーが送信したページのエンコーディングが、データを表示しているページのエンコーディングと一致しない場合、間違いなくphpページが文字化けします。

◆ ユーザーが情報を入力するページが big5 コードであるが、ユーザー入力が表示されるページが gb2312 である場合、これにより 100% php ページが文字化けします。

◆ phpページの文字セットが間違っています;

◆ PHP接続のmysqlデータベースステートメントで指定されたエンコーディングが正しくありません。

注:

mysql のバージョンが一貫していないことが文字化けを引き起こすのではないかと疑っている人は多いですが、このガイドを読めばそうは思わなくなると思います。

通常、一部の Web サイトで表示されるテキストには、複数のエンコーディングが使用されている場合があります。たとえば、繁体字中国語の文字は、big5 エンコーディングである場合もあれば、utf-8 エンコーディングである場合もあります。間違っている場合もあります。つまり、簡体字中国語でエンコードされた繁体字中国語の文字もあれば、繁体字中国語でエンコードされた簡体字中国語の文字もあるということを理解する必要があります。

簡素化されたコードの Web ページを作成している場合、コードは gb2312 に設定されます。香港および台湾からの訪問者が繁体字中国語の情報を送信すると、コードが文字化けする可能性があります。

ウェブサイトのエンコードを、世界中のすべての文字と互換性のある utf-8 に設定します。

ウェブサイトが長期間運営されており、古いデータが多く、簡体字中国語の設定を変更できなくなった場合は、ページのエンコードを gbk に設定することをお勧めします。gbk と gb2312 の違いは gbk です。 gb2312 よりも多くの文字を表示できます。簡体字コードで繁体字中国語の文字を表示するには、gbk のみを使用できます。

mysql+phpを使用する際に文字化けが発生する原因を明確に理解していれば、解決は難しくありません。

mysql+php によって生成された文字化けしたコードの解決策:

mysql をインストールするためのコードを変更できない場合、多くの友人はウェブサイトを構築するために仮想ホストを購入しており、mysql をインストールするためのコードを変更する権利を持っていません。次の手順が正しい限り、この手順を省略できます。コード化けの問題は解決できます。

データベースのエンコードを変更する データベースのエンコードが間違っている場合は、phpmyadmin で次のコマンドを実行できます。

SQLコード

01.データベース「テスト」を変更します デフォルトの文字セット utf8 を照合します utf8_bin

上記のコマンドは、テスト データベースのエンコーディングを utf8 に設定します。


テーブルのエンコーディングを変更します:

SQLコード

01.テーブル「カテゴリ」のデフォルト文字セットを変更します utf8 照合 utf8_bin
上記のコマンドは、テーブル カテゴリのエンコードを utf8 に変更することです。

フィールドのエンコーディングを変更します:

SQLコード

01.テーブル 'test' を変更 'dd' 'dd' varchar( 45 ) 文字

02.utf8 を照合する utf8_bin が null でないように設定します

上記のコマンドは、テスト テーブルの dd のフィールド エンコーディングを utf8 に変更します。

この状況が簡単に解決できる場合は、ページを確認してソースファイルの文字セットを変更するだけです。

この場合は、ページの文字セットを変更するだけです。

データベースに接続するステートメント内。

SQLコード

01.mysql_connect('localhost','user','password');

02.mysql_select_db('my_db');

03.mysql_query("set names utf8;"); //データベースを選択した後にこの文を追加します

PHPページの文字化けを避けるために、PHPページの最初の文から始めてください



phpコード

01.header("content-type:text/html; charset=utf-8"); 文字化けを避けるためにページのエンコードを強制的に指定します

注: 上記の方法による変更は、新しく挿入されたデータが文字化けしないことのみを保証できます。たとえば、ユーザーが送信したデータが big5 であるが、上記の方法を使用して正しく表示されるように変更したい場合です。 gb2312 Web ページでは、この種のテキスト内部コードの変換は、別のプログラムを作成することによってのみ解決できます。



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

www.bkjia.com

tru​​e

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

mysql チュートリアル + php チュートリアルの文字化けの原因の分析と解決策 ◆ mysql データベース チュートリアルのデフォルトのエンコーディングは php Web ページと一致しない場合、mysql 文字化けが発生する可能性があります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。