ホームページ バックエンド開発 PHPチュートリアル echoで漢字が文字化けして表示される問題

echoで漢字が文字化けして表示される問題

Jun 23, 2016 pm 01:55 PM
echo 中国語 文字化け 見せる

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

echo "<li>ISBN:".$isbn."</br>书名:".$name."</br>作者:".$author."</br>";
ログイン後にコピー

データはデータベースから取得され、$isbn に割り当てられます。
文字化けが表示される

コード追加:
echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>";
ログイン後にコピー
ログイン後にコピー

変更後:


解決方法は? ?


ディスカッションへの返信 (解決策)

データを取得する前に、次を追加します: mysql_query("set names utf8"); データを取得する前に、次を追加します: mysql_query("set names utf8");

まだ同じです

phpmyadmin ではどのように表示されますか?


データベースはどのようなエンコードを使用しますか?

utf8_general_ci

データを取得します前に追加します: mysql_query("set names utf8");


これはコードです:
//以上连接数据库mysql_set_charset("gbk");$result = mysql_query("SELECT * FROM book_list LIMIT 0 , 30" ); //查询数据库while ($bookInfo = mysql_fetch_array($result)){ //返回查询结果到数组   $isbn = $bookInfo["B_ISBN"]; //将数据从数组取出    $name = $bookInfo["B_name"];    $author = $bookInfo["B_author"];echo "<li>ISBN:".$isbn."</br>书名:".$name."</br>作者:".$author."</li>";  //输出数据}
ログイン後にコピー
ログイン後にコピー

データを取得する前に、次を追加します: mysql_query("set names utf8");


これはコードです:

//以上连接数据库mysql_set_charset("gbk");$result = mysql_query("SELECT * FROM book_list LIMIT 0 , 30" ); //查询数据库while ($bookInfo = mysql_fetch_array($result)){ //返回查询结果到数组   $isbn = $bookInfo["B_ISBN"]; //将数据从数组取出    $name = $bookInfo["B_name"];    $author = $bookInfo["B_author"];echo "<li>ISBN:".$isbn."</br>书名:".$name."</br>作者:".$author."</li>";  //输出数据}
ログイン後にコピー
ログイン後にコピー

コメントアウト
//mysql_set_charset("gbk");

エコーの前に
echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>";
ログイン後にコピー
ログイン後にコピー

を追加します。
さらに、 mysql_query("set names utf8"); を追加すると、すべての漢字が文字化けします。


直接表示した場合、データベースから読み込んだ内容は正常です。しかし、本のタイトルと著者名が文字化けしています。
ここで、php ファイルが utf8 であることがわかるので、 echo "<meta http-equiv='Content-Type'' content='text/html; charset=utf-8'>"; を追加します。
Book title ,これは作者にとっては普通のことです。

すると、データベースの元の内容が文字化けしてしまいます。確かに、データベース内のコンテンツは utf8 形式ではありません。 iconv を使用して一度変換し、問題が正しいかどうかを確認できます。
// 这一句改成这样echo "<li>ISBN:".$isbn."</br>书名:".iconv('GBK','UTF-8',$name)."</br>作者:".iconv('GBK','UTF-8',$author)."</li>";  //输出数据
ログイン後にコピー

なぜ mysql_set_charset("gbk"); を追加する必要があるのですか?


これは不思議ではないので、データベース内のものが UTF8 ではないと思います

mysql_set_charset("gbk"); mysql_query("set names gbk"); すでに一度変換されているので、再度 UTF8 に変換します。 。 。

gbk環境では、utf-8でエンコードされた書籍タイトルは「涔??」と表示されます

このとき、データベースから読み込んだデータは正常に表示されます

データベースから読み込んだデータがgbkエンコードされていることがわかります。これは、utf-8 言語宣言が発行された後、それを証明するために文字化けした状況が逆転した可能性があります

現在の状況によると、$isbn = iconv('gbk', 'utf-8', $isbn) が必要です。 ; 読み取られるデータは gbk から utf-8 へのエンコーディング変換を行います
と言語宣言のヘッダーが必要です

この現象は次のとおりです。

データベースは latin1 の
フィールドは utf8 です
挿入されたデータは gbk です
データを挿入するときに文字セットが宣言されていなかったため、gbk の内容が latin1 としてフィールドに挿入されました
文字セット読み取り時にも宣言されていないため、フィールド内のデータはそのまま latin1 として読み戻されます
実際、これは、そもそもデータベースが保存されているデータを変更するべきではありません
それ以外の場合は、それが車の場合です。を倉庫に入れて取り出すとバイクになってしまい、めちゃくちゃになります。

データベース内の既存のデータに対しては、これが唯一の方法です。諦めたくない場合は、トランスコーディングを行う必要があります (非常に面倒です)
将来的にデータを挿入および読み取るときは、次の点に注意する必要があります。 set names XXX コマンドを実行します。注意: この XXX は現在のデータの文字セット名です
たとえば、gbk データを挿入するには、mysql_query("set names gbk") を使用します。
データを utf-8 として取得するには、次を使用します。 mysql_query("セット名 utf8");

gbk環境では、utf-8でエンコードされた書籍タイトルは「涔??」と表示されます
このとき、データベースから読み込んだデータは正常に表示されます
データベースから読み込んだデータがgbkエンコードされていることがわかります。これは、utf-8 言語宣言が発行された後、それを証明するために文字化けした状況が逆転した可能性があります

現在の状況によると、$isbn = iconv('gbk', 'utf-8', $isbn) が必要です。 ; 読み取られるデータは gbk から utf-8 へのエンコーディング変換を行います
と言語宣言のヘッダーが必要です

この現象は次のとおりです。
データベースは latin1 の
フィールドは utf8 です
挿入されたデータは gbk です
データを挿入するときに文字セットが宣言されていなかったため、gbk の内容が latin1 としてフィールドに挿入されました
文字セット読み取り時にも宣言されていないため、フィールド内のデータはそのまま latin1 として読み戻されます
実際、これは、そもそもデータベースが保存されているデータを変更するべきではありません
それ以外の場合は、それが車の場合です。を倉庫に入れて取り出すとバイクになってしまい、めちゃくちゃになります。

データベース内の既存のデータに対しては、これが唯一の方法です。諦めたくない場合は、トランスコーディングを行う必要があります (非常に面倒です)
将来的にデータを挿入および読み取るときは、次の点に注意する必要があります。 set names XXX コマンドを実行します。注意: この XXX は現在のデータの文字セット名です
たとえば、gbk データを挿入するには、mysql_query("set names gbk") を使用します。
データを utf-8 として取得するには、次を使用します。 mysql_query("set names utf8");



いいね!合理的かつ十分な根拠がある。非常に良い分析です

なぜ mysql_set_charset("gbk"); を追加する必要があるのですか?

これは不思議ではないので、データベース内のものが UTF8 ではないと思います

mysql_set_charset("gbk");に等しい mysql_query("set names gbk" ); すでに一度変換されています。再度 UTF8 に変換してください。 。 。



私が初めて PHP に触れたとき、データベースに接続する必要がありましたが、Du Niang がコードを見つけるのを手伝ってくれました。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

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. 設定に戻ります

Excelのテーブルに中国語を表示するように設定するにはどうすればよいですか? Excel切り替え中国語操作チュートリアル Excelのテーブルに中国語を表示するように設定するにはどうすればよいですか? Excel切り替え中国語操作チュートリアル Mar 14, 2024 pm 03:28 PM

Excelスプレッドシートは現在多くの人が使っているオフィスソフトの一つですが、パソコンがWin11なので英語のインターフェースが表示されていて、中国語のインターフェースに切り替えたいけど操作方法が分からないという方もいらっしゃいます。この問題を解決するには、この問題エディターがすべてのユーザーの質問に答えるためにここにあります。今日のソフトウェア チュートリアルで共有されるコンテンツを見てみましょう。 Excel を中国語に切り替えるためのチュートリアル: 1. ソフトウェアを起動し、ページ上部のツールバーの左側にある [ファイル] オプションをクリックします。 2. 以下の選択肢から「オプション」を選択します。 3. 新しいインターフェースに入ったら、左側の「言語」オプションをクリックします。

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

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

wwe2k24には中国語が登場しますか? wwe2k24には中国語が登場しますか? Mar 13, 2024 pm 04:40 PM

『WWE2K24』はVisual Conceptsが制作し、2024年3月9日に正式リリースされたレーシングスポーツゲームです。このゲームは非常に高く評価されており、多くのプレイヤーが中国語版がリリースされるかどうかに熱心に興味を持っています。残念ながら、今のところ「WWE2K24」は中国語版をまだローンチしていない。 wwe2k24 は中国語になりますか? 回答: 中国語は現在サポートされていません。 Steam中国地域におけるWWE2K24の標準版の価格は199元、デラックス版は329元、記念版は395元です。ゲームには比較的高い構成要件があり、プロセッサ、グラフィックス カード、または実行メモリに関して特定の基準があります。公式推奨構成と最小構成の紹介:

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

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

Google Chromeを中国語モードに変更するにはどうすればよいですか? Google Chromeを中国語モードに変更するにはどうすればよいですか? Mar 13, 2024 pm 07:31 PM

Google Chromeで中国語を英語に変更するにはどうすればよいですか?友人の中には、Google Chrome を英語に設定して、使用中に継続的に英語力を向上させたいと考えている人もいます。では、どうやって英語に設定すればいいのでしょうか? Google Chromeはデフォルトでは中国語になっていますが、以下ではGoogle Chromeの言語を英語に設定する方法を紹介しますので、見てみましょう。設定手順: 1. 下図に示すように、[Google Chrome]を開きます。 2. 以下の図に示すように、Google Chrome インターフェースの右上隅にある [3 つの点] メニューをクリックします。 3. メニューページに入ったら、次の図に示すように [設定] を見つけます。 4. 設定ページに入ったら、次の図に示すように、[言語]オプションをクリックします。 5. 次の図に示すように、言語インターフェイスで [言語の追加] を選択します。

Oracleに中国語データをインポートする際の文字化けの問題を解決するにはどうすればよいですか? Oracleに中国語データをインポートする際の文字化けの問題を解決するにはどうすればよいですか? Mar 10, 2024 am 09:54 AM

タイトル: 中国語データを Oracle にインポートする際の文字化けの問題を解決する方法とコード例。中国語データを Oracle データベースにインポートすると、文字化けが頻繁に発生します。これは、データベースの文字セット設定が間違っているか、インポート中のエンコード変換の問題が原因である可能性があります。プロセス。 。この問題を解決するには、インポートされた中国語データが正しく表示されるようにするためのいくつかの方法を講じることができます。以下に、いくつかの解決策と具体的なコード例を示します。 1. データベースの文字セット設定を確認します。 Oracle データベースでは、文字セット設定は次のとおりです。

Quarkブラウザを中国語に設定する方法と中国語翻訳を設定する方法 Quarkブラウザを中国語に設定する方法と中国語翻訳を設定する方法 Mar 12, 2024 pm 02:10 PM

Quark ブラウザ ソフトウェアは無数のリソース情報を提供し、検索結果は最も正確です。強力な検索エンジンが内蔵されています。キーワードを入力すると、対応する回答を見つけることができます。全体的なインターネット エクスペリエンスは非常に優れています。さまざまな分野の閲覧セクションが開いています。検索したものや表示されたものはすべて検索できます。すぐに見つかります。迷惑な広告ポップアップはすべてブロックされます。迷惑な広告ポップアップはすべてブロックされます。さまざまなブラウジング モードを自由に切り替えてネットサーフィンできます。インターネット経由での処理に全くラグがなく、もちろん翻訳機能をオンにすることも可能 どの国の言語でも簡単に翻訳でき、コミュニケーションに問題はありません さまざまな形式に対応したファイルやドキュメント現在、エディターはQuarkオンラインを詳細に閲覧しており、サーバーユーザーは中国語翻訳を設定する方法をもたらします。 1. まず携帯電話のデスクトップをクリックします。

See all articles