PHPエンコード変換解析

怪我咯
怪我咯オリジナル
2017-07-11 16:55:331527ブラウズ

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 サイトの他の関連記事を参照してください。

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