php iconv関数に基づく使用の詳細

1716 ワード

Unixの下でPHPのmoduleをインストールして、PHPを再コンパイルする必要があって、Windowsの下でテンプレートをインストールして、phpだけを必要とします.iniの構成は対応するdllを開くことができます.例えば、gbライブラリのサポートを追加する必要があります.次の設定が必要です.extension_dir="C:/ipaddr/php/extensions/"(全アドレスを書くことをお勧めしますが、後に/を付けると、ここの設定が間違っているため、他のモジュールのdllをロードできない場合が多いので注意)extension=php_を開くgd2.dllただしiconvをインストールする場合.dll、上記の方法でphp_を開きます.iconv.dll後、iconvモジュールを開くことはできません.a.上iconvの公式ダウンロードサイトhttp://ftp.gnu.org/pub/gnu/libiconv/次のWindows版iconvファイル:libiconv-1.9.1.bin.woe32.zipはこのファイルを解凍しbin/次のcharset.dll,iconv.dll,iconv.exeはc:/windows/(または他のシステムPATHにコピーします)(ipaddrはこのステップが必要であることを注意して、php_iconv.dllもGNUのiconvライブラリを呼び出すので、まずGNUのiconvライブラリをインストールします)
b.phpをオンにする.iniの中のphp_iconv.dll
c.Apacheを再起動し、phpinfo();iconvがオンになっているかどうかを検出します.最近、プログラムを作っていて、iconv関数を使って捕まえたutf-8符号化のページをgb 2312に変える必要がありますが、iconv関数で捕まえたデータをトランスコードするだけで理由もなく少なくなることがわかりました.しばらく憂鬱になって、ネットで資料を調べてからiconv関数のバグだと知った.iconvは、文字"-"をgb 2312に変換する際のエラー解決方法は簡単である、変換する符号化後に"//IGNORE"すなわちiconv関数の2番目のパラメータを加える後である.以下に、iconv(「UTF-8」,「GB 2312//IGNORE」,$data)ignoreは、変換時のエラーを無視することを意味し、ignoreパラメータがなければ、その文字の後ろの文字列はすべて保存できません.
このiconv()という関数はphp 5に内蔵されている.ありがとう.
 
  
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, 'UTF-8');         //

//

   $content = iconv("UTF-8","gbk//TRANSLIT",$content);
?>