PHP iconv() 文字エンコーディング変換の問題_PHP チュートリアル
PHP 関数ライブラリには、iconv() という関数があります。iconv 関数ライブラリは、さまざまな文字セット間の変換を完了することができ、PHP プログラミングに不可欠な基本関数ライブラリです。
私は現在泥棒プログラムに取り組んでおり、キャプチャされた utf-8 でエンコードされたページを gb2312 に変換するために iconv 関数を使用する必要があります。キャプチャされたデータを iconv 関数を使用してトランスコードするだけでデータが削減されることがわかりました。理由もなく。 しばらく落ち込んだ後、インターネット上の情報を調べたところ、これは iconv 関数のバグであることがわかりました。 iconv は文字「-」を gb2312 に変換するときにエラーになります。
この機能の使い方を見てみましょう。
最も単純なアプリケーションは、gb2312 を utf-8 に置き換えます:
リーリー$text=iconv("UTF-8", "GB2312", $text) を使用する過程で、英語名に「—」、「.」などの特殊文字が含まれている場合は、変換します。彼らは壊れた。これらの文字の後のテキストはそれ以上変換できません。
この問題を解決するには、次のコードを使用できます:
リーリーそのとおりです。とても簡単です。gb2312 を使用せず、GBK として記述するだけです。
別の方法もあります。次のように、2 番目のパラメーターに //IGNORE を追加してエラーを無視します。 リーリー
これら 2 つの方法を具体的に比較することはできません。最初の方法 (gb2312 ではなく GBK) の方が優れていると思います。PHP マニュアルの iconv() の手順:
リーリー
この関数を使用して文字列エンコーディングを変換する場合、utf-8 を gb2312 に変換すると文字列が切り詰められる可能性があることに注意してください。現時点では、次の方法を使用して解決できます:リーリー
つまり、2 番目のパラメーターに赤い部分を追加します。これは、ソース エンコーディングに一致する文字がターゲット エンコーディングで見つからない場合、類似した文字が変換のために選択されることを意味します。ここで //IGNORE パラメーターを使用して、変換できない文字を無視することもできます。ignore は、変換中にエラーを無視することを意味します。ignore パラメーターがないと、この文字に続くすべての文字列を保存できません。
iconv は php のデフォルトの機能ではなく、デフォルトでインストールされるモジュールでもあります。使用する前にインストールする必要があります。
Windows2000+phpの場合は、php.iniファイルを変更して、extension=php_iconv.dllの前の「;」を削除できます。同時に、元のphpインストールファイル内のiconv.dllをコピーする必要があります。 winnt/system32 (DLL がこのディレクトリを指している場合)。 Linux 環境では、静的インストールを使用して、configure 時に追加項目 --with-iconv を追加するだけです。iconv 項目は phpinfo に表示されます。 (Linux7.3+Apache4.06+php4.3.2)。
mb_convert_encoding と iconv 関数の概要
mb_convert_encoding この関数はエンコーディングを変換するために使用されます。以前はプログラムコーディングの概念が理解できませんでしたが、今では少し理解できるようになりました。ただし、通常、英語にはエンコードの問題はなく、中国語のデータのみにこの問題が発生します。たとえば、Zend Studio または Editplus を使用してプログラムを作成する場合、データをデータベースに入力する必要があり、データベース エンコードが utf8 である場合は、データをエンコードして変換する必要があります。そうでない場合は、データをエンコードして変換する必要があります。データベースに入るときに文字化けします。
GBK を UTF-8 に作成します:
リーリー
Big5 への別の GB2312:リーリー
ただし、上記の機能を使用するには、まずmbstring拡張ライブラリをインストールして有効にする必要があります。string mb_convert_encoding (string str, string to_encoding [,mixed from_encoding]) mb_convert_encoding を削除するには、まず mbstring 拡張ライブラリを追加する必要があります。エンコードされており、内容に基づいて自動認識されますが、実行効率は iconv;
よりもはるかに悪くなります。
string iconv (string in_charset, string out_charset, string str) 注: 変換先のエンコーディングを指定することに加えて、2 番目のパラメーターで 2 つのサフィックスを追加することもできます: //TRANSLIT と //IGNORE。ここで、//TRANSLIT は自動的に変換されます。 //IGNORE は、1 つ以上の近似文字に直接変換できない文字を無視し、デフォルトの効果として、最初の不正な文字から切り捨てられます。通常は、iconv を使用します。mb_convert_encoding 関数は、元のエンコーディングが特定できない場合、または変換後に iconv が正常に表示されない場合にのみ使用してください。
れーれー

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー
