php がデータベースから文字化けした中国語を読み取る場合の解決策: 1. 「mysql_query」関数を使用して MYSQL 接続エンコーディングを設定し、ページ宣言エンコーディングがここで設定した接続エンコーディングと一致していることを確認します。 FTP ソフトウェアを使用してオンライン ファイルを直接変更する; 3. 「AddDefaultCharset GB2312」を仮想マシンの構成ファイルに追加してグローバル構成をオーバーライドするか、ディレクトリの .htaccess で構成します。
このチュートリアルの動作環境: Windows 10 システム、PHP バージョン 8.1.3、Dell g3 コンピューター。
php がデータベースから中国語の文字化けを読み取る理由:
一般に、文字化けが発生する原因は 2 つあります。エンコード (文字セット) 設定が正しくありません。ブラウザは間違ったエンコードで解析し、画面全体に乱雑な「天の書」が表示されます。次に、ファイルが間違ったエンコードで開かれ、保存されます。たとえば、テキスト ファイルです。元は GB2312 でエンコードされていましたが、UTF-8 エンコードで開かれました。再度保存してください。上記の文字化けコードの問題を解決するには、まず開発のどの側面にエンコーディングが関係しているかを知る必要があります。
1. ファイル エンコーディング: ページ ファイル (.html、.php など) のエンコーディングを指します。それ自体は保存されます。 Notepad と Dreamweaver では、ページを開くときにファイルのエンコーディングが自動的に認識されるため、問題は少なくなります。ただし、ZendStudio はエンコードを自動的に認識しません。環境設定の設定に従って特定のエンコードでファイルを開くだけです。作業中に誤って間違ったエンコードでファイルを開くと、保存した瞬間に文字化けが表示されます。変更を加えた後です。
2. ページ宣言のエンコーディング: HTML コードの HEAD では、「meta http-equiv="Content-Type" content="text/html; charset="XXX" /」を使用できます (この文は必ず「タイトル」の前に記述されるエンコーディング
3. データベース接続エンコーディング: データベース操作を実行するときにデータベースにデータを送信するために使用されるエンコーディングを指します。データベース自体のエンコーディングと混同されます。たとえば、MySQL の内部デフォルトは laTIn1 エンコーディングです。つまり、MySQL はデータを laTIn1 エンコーディングで保存し、他のエンコーディングで Mysql に送信されたデータは latin1 エンコーディングに変換されます。
# WEB 開発でエンコーディングがどこに関係するのかを知っていれば、コードが文字化けする理由がわかるでしょう: 上記 3 つのエンコーディング設定が矛盾しているため、各種エンコーディングのほとんどは ASCII と互換性があるため、英語の記号は表示されず、中国語の記号は表示されません一般的なエラーの状況と解決策:
1. データベースは UTF8 エンコーディングを使用し、ページ宣言のエンコーディングは GB2312 です。文字化けの最も一般的な原因です。現時点では、PHP スクリプトで直接 SELECT されたデータは文字化けコードであるため、クエリを実行する前にmysql_query(”SET NAMES GBK“); 或mysql_query(”SET NAMES GB2312“);
mysql_query(”SET NAMES UTF8“);
以上がPHPがデータベースから中国語の文字化けを読み取った場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。