phpが出力するstringのエンコードが、headerのヘッダ情報で宣言されているエンコードと一致しない場合、文字化けが出力されます。
PHP プログラムの開発では、エンコードの問題で多くの人が悩まされたと思います。たとえば、GBK でエンコードされた文字列を出力する必要があるが、渡された文字列が GBK エンコードされているか UTF8 エンコードされているかがわからないため、エンコードができない場合です。これは、均一にエンコードできる関数が必要な場合です。
PHPを使用してMS SQL Serverデータベースに接続し、データベースのエンコーディングを確認します
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')結果は936で、これはGBKエンコーディングです。
936 簡体字中国語 GBK
950 繁体字中国語 BIG5
437 アメリカ/カナダ英語
932 日本語
949 韓国語
866 ロシア語
65
001 unicode UFT-8
フィールドに中国語が含まれている場合、PHP ファイルは GBK に設定されます2312、データベース情報を取得するときに問題はありません:
print_r($rs["Customer Encoding"]);
PHP ファイルのエンコーディング設定が utf-8 の場合、エラーが報告されます。
PHP ファイルのエンコーディングを utf-8 に設定する必要がある場合は、エンコーディングを変換する必要があります:
print_r($rs[mb_convert_encoding("Customer Encoding","GBK","UTF-8")]) ;/ /レコードを印刷
array
この方法なら問題ありません。
以上がPHPエンコード変換解析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。