PHPiconv 関数

WBOY
リリース: 2016-08-08 09:23:15
オリジナル
1152 人が閲覧しました

今日、オンラインで論文を修正しているときに、iconv 関数に出会いました。詳細については、こちらをご覧ください
header('Content-Type: application/vnd.ms-excel;charset=UTF-8"');
$name=iconv('utf-8', 'gb2312', $data['year' ] .'年、番号'.$data['期間'].'通信');
header('Content-Disposition:attachment;filename="' . $name . '.xls"');
header( 'Cache-Control: max-age=0');
このコードの意味は、utf-8 形式を gb2312 形式に変換し、それを $name に割り当てて、Excel ファイルの名前がエクスポートされるときに、中国語で $name の名前になります
この関数の詳細および拡張された使用法は次のとおりです
元のソース URL (www.cnblogs.com/keheng/articles/2496017.html)
iconv("UTF- 8","GB2312//IGNORE ",$data)
ignore は変換中のエラーを無視することを意味します。ignore パラメーターがないと、この文字に続くすべての文字列は保存できません。
この iconv() 関数は php5 に組み込まれています。
例:
echo $str= 'こんにちは、ここでコーヒーを販売しています!';
echo '
';
echo iconv('GB2312', 'UTF-8', $ str); //文字列エンコーディングを GB2312 から UTF-8 に変換します
echo '
';
echo iconv_substr($str, 1, 1, 'UTF-8'); // を押します。バイトではなく文字が切り取られます
Print_r (iconv_get_encoding ()); // 現在のページのエンコード情報を取得します
echo iconv_Strlen ($ Str, // / もこのように使用されます
$content = iconv() "UTF-8","gbk//TRANSLIT",$content);

?>

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
インストール:
#cp libiconv-1.8。 tar.gz /usr/local/src
#tar zxvf lib*
#./configure --prefix=/usr/local/libiconv
#make
#make install
compile php
#./configure --prefix=/ usr/local/php4.3.2 --with-ic/local/libiconv/
簡単な使用例:
echo iconv("gb2312","ISO-8859-1","we"); ?>

PHP の mb_convert_encoding 関数と iconv 関数の概要
mb_convert_encoding この関数はエンコーディングを変換するために使用されます。以前はプログラムコーディングの概念が理解できませんでしたが、今では少し理解できるようになりました。
ただし、一般的に英語にはエンコードの問題はなく、中国語のデータのみにこの問題が発生します。たとえば、Zend Studio または Editplus を使用してプログラムを作成する場合、データをデータベースに入力する必要があり、データベース エンコードが utf8 である場合は、データをエンコードして変換する必要があります。そうでない場合は、データをエンコードして変換する必要があります。データベースに入るときに文字化けします。
mb_convert_encoding の公式の使用法を参照してください:
http://cn.php.net/manual/zh/function.mb-convert-encoding.php
GBK を UTF-8 に作成します
header("content; - タイプ: text/html; charset=Utf-8");
echo mb_convert_encoding("あなたは私の友達です", "UTF-8", "GBK");
?>

Big5 への別の GB2312
< ?php
header("content-Type: text/html; charset=big5");
echo mb_convert_encoding("You are my friends", "big5", "GB2312");

上記の関数では、mbstring 拡張ライブラリをインストールする必要がありますが、最初にそれを有効にする必要があります。
PHP の別の関数 iconv も文字列エンコーディングの変換に使用され、その関数は上記の関数と似ています。
以下に詳細な例をいくつか示します:
iconv — 文字列を要求された文字エンコーディングに変換します
(PHP 4 >= 4.0.5, PHP 5)
mb_convert_encoding — 文字エンコーディングを変換します
(PHP 4 >= 4.0.6, PHP 5) )
使用法:
string mb_convert_encoding ( string str, string to_encoding [,mixed from_encoding] )
まず mbstring 拡張ライブラリを有効にし、php.ini の extension=php_mbstring.dll の前にある ; を削除する必要があります
mb_convert_encoding を指定できます複数のタイプの入力エンコーディング。内容に基づいて自動的に識別されますが、実行効率は iconv よりもはるかに悪くなります。
string iconv (string in_charset, string out_charset, string str)
注: エンコーディングの指定に加えて、2 番目のパラメーター//TRANSLIT と //IGNORE の 2 つのサフィックスを追加することもできます。 //TRANSLIT は、直接変換できない文字を 1 つ以上の近似文字に自動的に変換します。 //IGNORE は、変換できない文字を無視します。デフォルトでは、最初の不正な文字から切り捨てられます。
変換された文字列を返すか、失敗した場合は FALSE を返します。
使用方法:
iconv が文字「-」を gb2312 に変換するときにエラーが発生することがわかりました。ignore パラメーターがないと、この文字に続くすべての文字列を保存できません。この「-」はどうやってもうまく変換できず出力できません。 なお、mb_convert_encoding にはこのバグはありません。
通常は iconv を使用します。 mb_convert_encoding 関数は、元のエンコーディングがわからない場合、または変換後に iconv が正常に表示されない場合にのみ使用してください。
from_encoding を文字コードで指定します。変換前の名前。配列または文字列 - カンマ区切りの列挙リストにすることができます。指定されていない場合は、内部エンコーディングが使用されます。
2 /* JIS、eucjp-win、sjis-win からエンコーディングを自動検出し、str を変換します。 to UCS-2LE */
3 $str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”);
4 /* 「auto」は「ASCII,JIS,」に展開されます。 UTF-8 ,EUC-JP,SJIS” */
5 $str = mb_convert_encoding($str, “EUC-JP”, “auto”);

例:
1 $content = iconv(”GBK”, “UTF”) -8″ , $content);
2 $content = mb_convert_encoding($content, "UTF-8″,"GBK");

php で iconv 関数を使用するときに見落とされやすいパラメータ今日、クロールされたコンテンツを処理するときに、iconv を使用してエンコード変換を行うと、文字セットの問題ではないかと考え、対象の文字に存在しない文字をスキップする方法を考えました。マニュアルを確認したところ、iconv には 3 つの関数しかなく、機能していないようでした。その後、ネットで調べたところ、実装できるとのことですが、最終的にその実装方法が英語で書かれていることがわかり、非常に驚​​きました。ターゲットコードの最後に「TRANSLIT」というマークを追加できると書いてあるのですが、どうやって追加すればいいのでしょうか?最初に「//」が追加されていることがわかり、非常に憂鬱です。このような設計があります
プロトタイプ: $txtContent = iconv("utf-8",'GBK',$txtContent);
特殊パラメーター: iconv( "UTF-8" ,"GB2312//IGNORE",$data)
2 つのオプションの補助パラメーター: TRANSLIT と IGNORE (IGNORE は、変換できないものに遭遇した場合にスキップすることを意味します)。説明
string iconv ( string in_charset, string out_charset, string str )
文字列 str に対して in_charset から out_charset への文字セット変換を実行し、変換された文字列を返すか、失敗した場合は FALSE を返します。
out_charset に文字列 //TRANSLIT を追加すると文字変換されます。これは、文字がターゲットの文字セットで表現できない場合、文字列 //IGNORE を追加すると、その文字を 1 つまたは複数の類似した文字で近似できることを意味します。それ以外の場合、str は最初の不正な文字から切り取られます。
以上、PHPiconv 関数についてその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!