Linux システムで PHP の iconv() 関数をサポートする方法

WBOY
リリース: 2016-06-13 12:04:58
オリジナル
875 人が閲覧しました

1. libiconv 関数ライブラリ http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz をダウンロードします。
2. tar -zxvf libiconv-1.9.2.tar を解凍します。 gz;
3. libiconv をインストールします

コードをコピーします:

#configure --prefix= /usr/ local/iconv

#make
#make install


4. php を再コンパイルし、コンパイル パラメーター --with-iconv=/usr/local/iconv

を追加します。 windows
私は最近泥棒プログラムに取り組んでおり、キャプチャされた utf-8 でエンコードされたページを gb2312 に変換するには、iconv 関数を使用する必要があります。キャプチャされたデータをトランスコードするには、iconv 関数を使用するだけであることがわかりました。理由もなく減額される場合もあります。 しばらく落ち込んだ後、インターネット上の情報を調べたところ、これは iconv 関数のバグであることがわかりました。 iconv は文字「—」を gb2312 に変換するときにエラーを起こします
解決策は非常に簡単です。つまり、変換する必要があるエンコーディングの後、つまり、 iconv 関数は次のようになります:
以下 引用された内容について:
iconv("UTF-8","GB2312//IGNORE",$data)
ignore は、変換中にエラーが発生した場合に無視することを意味します。は無視パラメータではありません。この文字以降のすべての文字 文字列は保存できません。

iconv は PHP のデフォルトの機能ではなく、デフォルトでインストールされるモジュールでもあります。使用する前にインストールする必要があります。
Windows 2000 PHP の場合は、php.ini ファイルを変更して、extension=php_iconv.dll の前の「;」を削除できます。同時に、元の PHP インストール ファイルの iconv.dll をコピーする必要があります。 winnt/system32 に (DLL がこのディレクトリを指している場合)
Linux 環境では、静的インストールを使用し、configure 時に --with-iconv 項目を追加します。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
php のコンパイル
#./configure --prefix= /usr/ local/php4.3.2 --with-iconv=/usr/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


コードをコピー コードは次のとおりです。

< ?php

header("content-Type : text/html ; charset=Utf-8");
echo mb_convert_encoding("あなたは私の友達です", "UTF-8", "GBK");
?>


別の GB2312 から Big5 へ

コードをコピー コードは次のとおりです。

< "content-Type : text/html; charset=big5");

echo mb_convert_encoding("あなたは私の友達です", "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 番目のパラメーターで 2 つのサフィックス //TRANSLIT と / を追加することもできます。 /IGNORE。 //TRANSLIT は、直接変換できない文字を 1 つ以上の近似文字に自動的に変換します。 //IGNORE は、変換できない文字を無視し、デフォルトの効果は最初の不正な文字から切り捨てます。
変換された文字列、または失敗した場合は FALSE を返します。


使用:

がある場合、iconv は文字「-」を gb2312 に変換するときにエラーが発生することがわかります。は無視パラメータではありません。このすべての文字に続く文字列は保存できません。この「—」はどうやってもうまく変換できず出力できません。 なお、mb_convert_encoding にはこのバグはありません。

一般に、iconv 関数は元のエンコーディングが特定できない場合、または 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");

例:



コードをコピー

コードは次のとおりです:

$content = iconv("GBK", "UTF- 8", $content ); $content = mb_convert_encoding($content, "UTF-8", "GBK");

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート