ホームページ >バックエンド開発 >PHPチュートリアル >libiconv と glibc トランスコーディングの違い

libiconv と glibc トランスコーディングの違い

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 14:03:551490ブラウズ

同じ記事では、トランスコーディングには iconv 関数を好み、mb_convert_encoding 関数はバックアップとして使用されています。
同記事: phpinfoのiconv情報は以下の通り
iconv実装「libiconv」
以上でiconvでトランスコードされたコンテンツが完成
別マシンのphpinfo情報は以下の通り
iconv実装glibc
このように場合、無視パラメータが有効であっても、iconv でトランスコードされたコンテンツは不完全です。代わりに mb_convert_encoding 関数を使用すると、コンテンツは完成です。
この問題を解決するにはどうすればよいですか?少なくとも、どのマシンに glibc があり、どのマシンに libiconv があるかという方法を考えてから、判断して異なるトランスコーディング関数を選択することはできますか?


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

*nix の下にいると思います

参考
http://rd.189works.com/article-38990-1.html

結局のところ、それはコードメーター。問題は、必要に応じて独自のコードテーブルを作成するだけです

*nix の下にあると思います

参考資料
http://rd.189works.com/article-38990-1.html

最終的には、それはコードテーブルの問題です、それは必要です 独自のコードテーブルを作成するときは、ただ

先ほども言いましたが、重要なのは、いつ使用するかを判断する必要があることです。 mb_convert_encoding 関数を最初に使用する場合と、いつ iconv 関数を最初に使用するかについては、効率が高いため、iconv 関数を最初に使用する必要があります。言うまでもなく、mb_convert_encoding には独自の欠点もあります。

1 階の snmr_com からの返信を引用: あなたは *nix の下にいると思います

参考文献
http://rd.189works.com/article-38990-1.html

最終的には、コンピューターの問題なので、必要に応じて自分で行うことができます コードテーブルを作成するのはただ

先ほども言いましたが、mb_convert_encoding 関数を使用することで確実に解決できます。重要なのは、最初に mb_convert_encoding 関数をいつ使用するかを判断する必要があるということです。そして、いつiconv関数を最初に使用するか...

その方法によると、おそらくオペレーティングシステム、linuxが最初にmb_convert_encodingを使用し、windowが最初にiconvを使用することを判断する必要がありますが、これは本当に完璧な解決策でしょうか?

glibc は、gnu によってリリースされた libc ライブラリであり、C ランタイム ライブラリです。 glibc は Linux システムの最下位 API であり、他の実行ライブラリのほとんどは glibc に依存しています。 Linux オペレーティング システムによって提供されるシステム サービスをカプセル化することに加えて、glibc 自体も、他の多くの必要な機能サービスの実装を提供します。 glibc には一般的な UNIX 標準がほぼすべて含まれているため、その内容はすべてを網羅していると想像できます。他の UNIX システムと同様に、それに含まれるファイル グループはシステムのツリー ディレクトリ構造に分散され、足場のようにオペレーティング システム全体をサポートします。 GNU/Linux システムでは、その C ライブラリの開発の歴史が、GNU/Linux の進化におけるいくつかの重要なマイルストーンを示しています。システムの C ライブラリとして glibc を使用することは、GNU/Linux の進化における重要なマイルストーンです。

libiconv の歴史の紹介
歴史的な理由により、国際化されたテキストでは言語や国の理由により異なるエンコーディングが使用されることがよくあります。インターネット時代の到来により、インターネットを介したテキストコミュニケーションが徐々に増加しており、海外のWebサイトを閲覧する際には特に文字コードの変換が重要になってきます。これにより、特定のエンコード方式では多くの文字が使用できないという問題が発生します。この混乱を解決するために、Unicode エンコード方式が作成されました。 Unicode は、これらすべてのエンコーディングの文字セットを含むスーパー エンコーディングであるため、XML などの一部の新しいテキスト形式のデフォルトのエンコーディングは Unicode です
しかし、多くの古いコンピューターは依然としてローカルの従来の文字エンコーディングを使用しています。電子メール プログラムやブラウザなどの一部のプログラムは、これらの異なるユーザー エンコーディング間で変換できなければなりません。他の一部のプログラムには、国際化処理を容易にするために Unicode のサポートが組み込まれていますが、それでも Unicode と他の従来のエンコーディングの間で変換する必要があります。 GNU の libiconv は、これら 2 つのアプリケーション用に設計されたコーディング変換ライブラリです。

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