目次
PHP+MYSQL中文乱码问题
ホームページ php教程 php手册 PHP+MYSQL中文乱码问题

PHP+MYSQL中文乱码问题

Jun 13, 2016 am 08:59 AM
php+mysql 中国語 主要 文字化け 数種類 記事 まとめ 解決する 質問

PHP+MYSQL中文乱码问题

   这篇文章主要汇总介绍了几种解决PHP+MYSQL中文乱码问题的方法,十分的实用,有需要的小伙伴可以参考下。

  从MySQL 4.1开始引入多语言的支持,但是用PHP插入的中文会出现乱码.无论用什么编码也不行.

  解决这个问题其实很简单.

  1.在建表的时候设置编码类型为gb2312_chinese_ci.

  2.在PHP页面的数据库连接语句加一行mysql_query("SET NAMES 'gb2312'",$link); 例如

  ?

1

2

3

4

5

6

7

8

9

10

$db_host="localhost";

$db_user="root";

$db_password="password";

$db_name="test";

 

$link=mysql_connect($db_host,$db_user,$db_password);

mysql_query("SET NAMES 'gb2312'",$link);

$db=mysql_select_db($db_name,$link);

$query="select * from user";

$result=mysql_query($query);

  写入页面和读取页面都加入这行.这样在MYSQL里面的中文就能正常显示了.

  相关资料:

  从MySQL 4.1开始引入多语言的支持,而且一些特性已经超过了其他的数据库系统。

  MySQL4.1的字符集支持(Character Set Support)有两个方面:字符集(Characterset)和排序方式(Collation)。对于字符集的支持细化到四个层次:服务器 (server),数据库(database),数据表(table)和连接(connection)。

  查看系统的字符集和排序方式的设定可以通过下面的两条命令:!

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

mysql> show variables like 'character_set_%';

+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | latin1 |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

7 rows in set (0.00 sec)

mysql> show variables like 'collation_%';

+----------------------+-------------------+

| Variable_name | Value |

+----------------------+-------------------+

| collation_connection | latin1_swedish_ci |

| collation_database | latin1_swedish_ci |

| collation_server | latin1_swedish_ci |

+----------------------+-------------------+

3 rows in set (0.00 sec)

  上面列出的值就是系统的默认值。(很奇怪系统怎么默认是latin1的瑞典语排序方式)...

  当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

  set names 'utf8';

  它相当于下面的四句指令:

  代码如下:

  set character_set_client = utf8;

  set character_set_results = utf8;

  set character_set_connection = utf8;

  set collation_connection = utf8_general_ci

  由于默认网页提交的查询是gb2312(表单页面meta里可以看到),而mysql默认将其当作utf8(可以查到此时的 character_set_client=utf8),所以必然乱码。同理,mysql返回的结果是已经转换成 character_set_results编码的(与表的编码无关),同样默认是utf8,而网页页面把它当gb2312处理,所以必然有标题等由数据 库读出的字段是乱码而其他php部分文字不乱码的现象。

  解决(by 一剑飘雪):

  安装mysql5.0时要选utf8字符集(在用phpmyadmin创建数据库和字段时就不需要在整理中选utf8字符集了),并在php建立连接后发送

  复制代码 代码如下:

  $link = mysql_connect('localhost', 'root', 'root');

  mysql_query("SET NAMES 'utf8'",$link);

  这时我们在网页中看到的还是乱码但已不是????了,查看网页源文件,已完全正常。用记事本打开php源文件,别存为utf8编码,再刷新网页,全部搞定了。

  或者,当然还是要安装时仍要utf8安装,在php中发送set names 'gb2312',同时php文件存为记事本默认的ansi,也能正确显示中文.

  但总不能每次连接时都发送一次SET NAMES 'utf8'吧,如何彻底解决还没找到方法。

  这样安装mysql时缺省字符集选为utf8后又带来一个问题,我们在command.exe中进入mysql控制台后,查询结果又成了乱码,我们可以在查询前输入

   代码如下:

  mysql>set names 'gbk';

  或

  复制代码 代码如下:

  mysql>set names 'gb2312';

  相当于告诉mysql客户端在使用gb2312字符集,结果就正确了,gb2312为GBK的子集.

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Black Shark携帯電話の電源が入らない問題を解決する方法を教える5つのヒント! Black Shark携帯電話の電源が入らない問題を解決する方法を教える5つのヒント! Mar 24, 2024 pm 12:27 PM

スマートフォン技術が発展し続けるにつれて、携帯電話は私たちの日常生活においてますます重要な役割を果たしています。 Black Shark フォンは、ゲーム パフォーマンスに重点を置いたフラッグシップ フォンとして、プレイヤーから高い支持を得ています。ただし、場合によっては、Black Shark 携帯電話の電源が入らないという状況にも直面するため、この問題を解決するために何らかの措置を講じる必要があります。次に、Black Shark 携帯電話の電源が入らない問題を解決する方法を説明する 5 つのヒントを共有しましょう: ステップ 1: バッテリー残量を確認する まず、Black Shark 携帯電話に十分な電力があることを確認します。携帯電話のバッテリーが消耗している可能性があります

小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか?投稿時に自動保存された画像はどこにありますか? 小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか?投稿時に自動保存された画像はどこにありますか? Mar 22, 2024 am 08:06 AM

ソーシャルメディアの継続的な発展に伴い、Xiaohongshu はますます多くの若者が自分たちの生活を共有し、美しいものを発見するためのプラットフォームとなっています。多くのユーザーは、画像を投稿する際の自動保存の問題に悩まされています。では、この問題をどうやって解決すればよいでしょうか? 1.小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか? 1. キャッシュをクリアする まず、Xiaohongshu のキャッシュ データをクリアしてみます。手順は次のとおりです: (1) 小紅書を開いて右下隅の「マイ」ボタンをクリックします。 (2) 個人センター ページで「設定」を見つけてクリックします。 (3) 下にスクロールして「」を見つけます。 「キャッシュをクリア」オプションを選択し、「OK」をクリックします。キャッシュをクリアした後、Xiaohongshu を再起動し、写真を投稿して、自動保存の問題が解決されるかどうかを確認します。 2. 小紅書バージョンを更新して、小紅書が正しく動作することを確認します。

このデバイスにドライバーをロードできません。解決するにはどうすればよいですか? (個人的にテスト済みで有効です) このデバイスにドライバーをロードできません。解決するにはどうすればよいですか? (個人的にテスト済みで有効です) Mar 14, 2024 pm 09:00 PM

コンピューターがドライバーを読み込めない場合、デバイスが正しく動作しないか、コンピューターと正しく対話できない可能性があることは誰もが知っています。では、このデバイスにドライバーをロードできないことを示すプロンプト ボックスがコンピューターに表示された場合、問題を解決するにはどうすればよいでしょうか?以下のエディタでは、問題を簡単に解決する 2 つの方法を説明します。このデバイスにドライバーをロードできません 解決策 1. スタート メニューで「カーネル分離」を検索します。 2. メモリの整合性をオフにします。上記のメッセージには、「メモリの整合性がオフになっています。デバイスは脆弱である可能性があります。」というメッセージが表示されます。戻るボタンをクリックして無視してください。使用には影響しません。 3. マシンを再起動すると、問題が解決することがあります。

Call of Duty: Warzone モバイル ゲームで中国語を設定する方法 Call of Duty: Warzone モバイル ゲームで中国語を設定する方法 Mar 22, 2024 am 08:41 AM

Call of Duty Warzone は新しくリリースされたモバイル ゲームです。多くのプレイヤーは、このゲームの言語を中国語に設定する方法に非常に興味があります。実際、それは非常に簡単です。プレイヤーは中国語の言語パックをダウンロードするだけで、その後、次のことができます詳しい内容はこちらの中国語設定方法紹介で解説していますので、一緒に見ていきましょう。モバイル ゲーム Call of Duty: Warzone に中国語を設定する方法 1. まずゲームに入り、インターフェースの右上隅にある設定アイコンをクリックします。 2. 表示されるメニューバーで、[ダウンロード]オプションを見つけてクリックします。 3. このページの[SIMPLIFIEDCHINESE](簡体字中国語)を選択して、簡体字中国語のインストールパッケージをダウンロードします。 4. 設定に戻ります

VSCode を使用した中国語のセットアップ: 完全ガイド VSCode を使用した中国語のセットアップ: 完全ガイド Mar 25, 2024 am 11:18 AM

中国語での VSCode セットアップ: 完全ガイド ソフトウェア開発では、Visual Studio Code (略して VSCode) が一般的に使用される統合開発環境です。中国語を使用する開発者は、VSCode を中国語インターフェイスに設定すると、作業効率が向上します。この記事では、VSCode を中国語インターフェイスに設定する方法を詳しく説明し、具体的なコード例を示す完全なガイドを提供します。ステップ 1: 言語パックをダウンロードしてインストールします。VSCode を開いた後、左側の

今すぐ Toutiao の記事を公開してお金を稼ぐにはどうすればよいですか?今すぐ Toutiao で記事を公開して収入を増やす方法! 今すぐ Toutiao の記事を公開してお金を稼ぐにはどうすればよいですか?今すぐ Toutiao で記事を公開して収入を増やす方法! Mar 15, 2024 pm 04:13 PM

1. 今すぐ Toutiao の記事を公開してどうやってお金を稼ぐことができますか?今すぐ Toutiao で記事を公開して収入を増やす方法! 1. 基本的な権利と利益の有効化: オリジナルの記事は広告によって利益を得ることができますが、利益を得るにはビデオが横画面モードでオリジナルである必要があります。 2. ファン100人の権利を有効化:ファン数が100人以上に達すると、マイクロヘッドライン、オリジナルQ&A作成、Q&Aから利益を得ることができます。 3. オリジナル作品にこだわる: オリジナル作品には記事、小見出し、質問などが含まれ、300 ワード以上であることが求められます。違法に盗用された作品をオリジナル作品として出版した場合、クレジットポイントが減点され、利益も差し引かれますのでご注意ください。 4. 垂直性:専門分野の記事を書く場合、分野を超えて自由に記事を書くことができず、適切な推薦が得られず、専門性や洗練度が得られず、ファンもつきにくいそして読者たち。 5. 活動: 高活動、

PHPでtxtファイルを書く際の中国語の文字化けを解決するためのヒント PHPでtxtファイルを書く際の中国語の文字化けを解決するためのヒント Mar 27, 2024 pm 01:18 PM

PHP で書かれた txt ファイルの中国語文字化けを解決するヒント. インターネットの急速な発展に伴い、PHP は広く使用されているプログラミング言語として、ますます多くの開発者に使用されています。 PHP 開発では、中国語のコンテンツを記述する txt ファイルなどのテキスト ファイルの読み取りと書き込みが必要になることがよくあります。ただし、エンコード形式の問題により、書かれた中国語が文字化けして表示されることがあります。この記事では、PHPでtxtファイルに書き込まれた中国語の文字化けを解決するテクニックと、具体的なコード例を紹介します。 PHP、テキストの問題分析

Black Shark 携帯電話充電のトラブルシューティングと解決策 Black Shark 携帯電話充電のトラブルシューティングと解決策 Mar 22, 2024 pm 09:03 PM

Black Shark は、強力なパフォーマンスと優れたゲーム体験で知られ、ゲーマーやテクノロジー愛好家に愛されているスマートフォン ブランドです。ただし、他のスマートフォンと同様に、Black Shark の携帯電話にもさまざまな問題があり、その中でよくあるのが充電の失敗です。充電障害は携帯電話の通常の使用に影響を与えるだけでなく、より深刻な問題を引き起こす可能性があるため、充電の問題を時間内に解決することが非常に重要です。この記事では、Black Shark 携帯電話の充電不良の一般的な原因から始まり、充電の問題のトラブルシューティングと解決方法を紹介し、読者が Black Shark 携帯電話の問題を解決するのに役立つことを願っています。

See all articles