PHP ページ、mysql データベースを utf-8 文字化けに変換する、utf-8 エンコードの問題の概要、mysqlutf-8_PHP チュートリアル

WBOY
リリース: 2016-07-13 09:44:27
オリジナル
875 人が閲覧しました

php ページ、mysql データベースから utf-8 への文字化けコード、utf-8 エンコードの問題の概要、mysqlutf-8

例 1:

PHPページをUTF-8エンコードに変換する際の問題

1. コードの先頭に次の行を追加します: header("Content-Type: text/html;charset=utf-8");

2.PHP ファイルのエンコードの問題。エディタのメニュー「ファイル」->「名前を付けて保存」をクリックすると、現在のファイルのエンコードが ANSI であることを確認できます。 、エンコードを:UTF-8 に変更する必要があります。

3. PHP ファイルのヘッダー BOM の問題: PHP ファイルには BOM タグがあってはなりません。そうでない場合、セッションは使用できなくなり、同様のプロンプトが表示されます:

警告: session_start() [function.session-start]: セッション キャッシュ リミッターを送信できません - ヘッダーはすでに送信されています これは、session_start() の実行時にページ全体に出力を含めることはできませんが、前の PHP ページに BOM タグが存在するためです。 , PHP はこの BOM タグを出力とみなすため、エラーが発生します。 したがって、BOMタグをPHPページから削除する必要があります

この BOM タグを削除する方法:

1. Dreamweaver でファイルを開いて再保存し、BOM タグを削除できます。

2. EditPlus でファイルを開き、メニューの「環境設定」->「ファイル」->「UTF-8 ID」で「署名を常に削除」に設定し、ファイルを保存します。 BOM ラベルは削除できます。

3. PHP がファイルを添付ファイルとして保存するときの UTF-8 エンコードの問題: PHP がファイルを添付ファイルとして保存するとき、ファイル名は GB2312 でエンコードされている必要があります。そうしないと、ファイル名に中国語が含まれていると文字化けします。 PHP 自体が UTF-8 エンコード形式のファイルの場合、ファイル名変数を UTF-8 から GB2312 に変換する必要があります: iconv("UTF-8", "GB2312", "$filename");

4. 記事タイトルを切り詰めて表示すると文字化けや「?」が表示される

通常、記事タイトルが非常に長い場合、タイトルの一部が表示され、UTF-8 エンコード形式の中国語文字は幅 3 文字を占めるため、タイトルがインターセプトされると、記事タイトルのみが表示されることがあります。文字幅が1文字または2文字の場合は、文字化けまたは「?」が表示されます。

次の関数を使用してタイトルをインターセプトすれば問題ありません:

リーリー


MYSQLデータベースでUTF-8エンコーディングを使用する際の問題


1. phpmyadmin を使用してデータベースとデータテーブルを作成します。データベースを作成するときは、「組織」を「utf8_general_ci」に設定するか、次のステートメントを実行してください。

リーリー


データテーブルを作成する場合: フィールドに中国語が格納されている場合は、「組織」を「utf8_general_ci」に設定する必要があります。フィールドに英語または数字が格納されている場合は、デフォルトで問題ありません。


対応する SQL ステートメント、例:

リーリー


2. PHP を使用してデータベースを読み書きします

データベースに接続した後:

リーリー


2 行を追加します:


リーリー


MYSQL データベースは通常どおり読み書きできます。


例 2:

php+mysqlのutf-8中国語文字化け問題の解決策

質問の概要:

1. mysql データベースのデフォルトのエンコーディングは utf8 です。このエンコーディングが PHP Web ページと一致しない場合、MYSQL コードが文字化けする可能性があります。 2. MYSQL でテーブルを作成するとき、このエンコーディングが Web ページのエンコーディングと一致しない場合、

コードが文字化けする可能性があります。

3. MYSQL でテーブルを作成するときにフィールドを追加するときにエンコードを選択できます。このエンコードが Web ページのエンコードと一致しない場合、

コードが文字化けする可能性があります。

4. ユーザーが送信したページのエンコーディングが、データを表示しているページのエンコーディングと一致しない場合、PHP ページが文字化けする可能性があります。

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

6. PHP ページの文字セットが間違っています。

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

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

さまざまな問題の解決策:

1. mysql データベースのデフォルトのエンコーディングは utf8 です。このエンコーディングが PHP Web ページと一致しない場合、MYSQL コードが文字化けする可能性があります。

データベースのエンコードを変更します。データベースのエンコードが間違っている場合は、phpmyadmin で次のコマンドを実行できます。 リーリー 上記のコマンドは、テスト データベースのエンコーディングを utf8 に設定します。

2. MYSQL でテーブルを作成するとき、このエンコーディングが Web ページのエンコーディングと一致しない場合、

コードが文字化けする可能性があります。

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

リーリー

上記のコマンドは、テーブル カテゴリのエンコーディングを utf8 に変更することです。

3. MYSQL でテーブルを作成するときにフィールドを追加するときにエンコーディングを選択できます。このエンコーディングが Web ページのエンコーディングと一致しない場合、

コードが文字化けする可能性があります。

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

リーリー

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

4. ユーザーが送信したページのエンコーディングが、データを表示しているページのエンコーディングと一致しない場合、PHP ページが文字化けする可能性があります。

如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可.

5.如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码.

这种情况也是修改页面charset即可.

6.PHP页面字符集不正确.

为了避免PHP页面乱码的发生,PHP页面开始第一句

header("content-type:text/html; charset=utf-8");
ログイン後にコピー

//强行指定页面的编码,以避免乱码

7.PHP连接MYSQL数据库语句指定的编码不正确.

在连接数据库的语句中.

mysql_connect('localhost','user','password');
mysql_select_db('my_db');
mysql_query("set names 'utf8'"); //select 数据库之后加多这一句
ログイン後にコピー

以上内容就是本文给大家介绍php页面,mysql数据库转utf-8乱码,utf-8编码问题总结,希望大家喜欢。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1049119.htmlTechArticlephp页面,mysql数据库转utf-8乱码,utf-8编码问题总结,mysqlutf-8 示例一: PHP页面转UTF-8编码问题 1.在代码开始出加入一行: header("Content-Type: tex...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート