今日、オンラインで論文を見直していたらiconv関数に出会いました。学びましょう
リーリーこのコードの意味は、utf-8 形式を gb2312 形式に変換し、それを $name に割り当てることです。このようにして、Excel ファイルの名前がエクスポートされると、$name の中国語名になります。
以下はこの機能の詳細および拡張的な使い方です
ignore は、変換中にエラーを無視することを意味します。ignore パラメーターがないと、この文字に続くすべての文字列を保存できません。
この iconv() 関数は php5 に組み込まれています。ありがとうございます。
例:
iconv は php のデフォルトの機能ではなく、デフォルトでインストールされるモジュールでもあります。使用する前にインストールする必要があります。
Windows2000+phpの場合は、php.iniファイルを変更して、extension=php_iconv.dllの前の「;」を削除できます。同時に、元のphpインストールファイル内のiconv.dllをコピーする必要があります。 winnt/system32 (DLL がこのディレクトリを指している場合)
Linux 環境では、静的インストールを使用し、configure で iconv 項目を参照できるように追加項目 --with-iconv を追加します。 (Linux7.3+Apache4.06+php4.3.2)、
ダウンロード: ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz
インストール:
phpをコンパイルする
#./configure --prefix=/usr/local/php4.3.2 --with-iconv=/usr/local/libiconv/
簡単な使用例:
リーリーPHP の mb_convert_encoding 関数と iconv 関数の紹介
mb_convert_encoding この関数はエンコーディングを変換するために使用されます。私はプログラムコーディングの概念を理解していませんでしたが、今では少し理解できるようになりました。
ただし、通常、英語にはエンコードの問題はなく、中国語のデータのみにこの問題が発生します。たとえば、Zend Studio または Editplus を使用してプログラムを作成する場合、データをデータベースに入力する必要があり、データベース エンコードが utf8 である場合は、データをエンコードして変換する必要があります。そうでない場合は、データをエンコードして変換する必要があります。データベースに入るときに文字化けします。
mb_convert_encodingの使用方法については、公式Webサイトをご覧ください:
http://cn.php.net/manual/zh/function.mb-convert-encoding.php
GBK を UTF-8 に作成する
リーリーもう一つの GB2312 が Big5 に
リーリーただし、上記の機能を使用するには、まずmbstring拡張ライブラリをインストールして有効にする必要があります。
PHP の別の関数 iconv も文字列エンコーディングの変換に使用され、その関数は上記の関数と似ています。
以下にいくつかの詳細な例があります:
使用法:
string mb_convert_encoding ( string str, string to_encoding [,混合 from_encoding] )
まず mbstring 拡張ライブラリを有効にし、php.ini の extension=php_mbstring.dll の前にある ; を削除する必要があります。
mb_convert_encoding は複数の入力エンコーディングを指定でき、内容に基づいて自動的に識別されますが、実行効率は iconv;
よりもはるかに悪くなります。
注: 変換先のエンコーディングの指定に加えて、2 番目のパラメーターでは、//TRANSLIT と //IGNORE の 2 つの接尾辞を追加することもできます。//TRANSLIT は、直接変換できない文字を 1 つ以上の近似文字に自動的に変換します。 //IGNORE は変換できない文字を無視し、デフォルトの効果は最初の不正な文字から切り捨てられます。
変換された文字列を返すか、失敗した場合は FALSE を返します。
iconv は文字「-」を gb2312 に変換するときにエラーが発生することがわかりました。ignore パラメーターがないと、この文字に続くすべての文字列を保存できません。この「-」はどうやってもうまく変換できず出力できません。 なお、mb_convert_encoding にはこのバグはありません
通常は、iconv を使用します。mb_convert_encoding 関数は、元のエンコーディングが特定できない場合、または変換後に iconv が正常に表示できない場合にのみ使用してください。
from_encoding は、変換前の文字コード名で指定されます。指定されていない場合は、配列または文字列の列挙型が使用されます。 /* JIS、eucjp-win、sjis-win からエンコードを自動検出し、str を UCS-2LE に変換します */
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”); /* 「auto」は「ASCII,JIS,UTF-8,EUC-JP,SJIS」に展開されます */
$str = mb_convert_encoding($str, “EUC-JP”, “auto”);
例:
リーリー
今日キャプチャしたコンテンツを処理するときに、iconvを使用してエンコード変換を行うと、結果が中断されることがわかり、ターゲットに存在しない文字をスキップする方法を考えていました。マニュアルを確認したところ、iconv の機能は 3 つのパラメータだけでは機能しないようでした。その後、インターネットで調べたところ、できると書いてありましたが、最後に、それを実装する方法に非常に驚きました。英語の説明には、ターゲットコードの末尾に「TRANSLIT」というマークを追加できると書いてありました。どうやって追加するのですか? 「//」が最初に追加されていることがわかります。このようなデザインがあるのは本当に憂鬱です プロトタイプ: $txtContent = iconv("utf-8",'GBK',$txtContent);
特殊パラメータ: iconv("UTF-8","GB2312//IGNORE",$data)2 つのオプションの補助パラメータ: TRANSLIT と IGNORE (IGNORE は、変換できないものに遭遇した場合にスキップすることを意味します)。
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。