ホームページ  >  記事  >  php教程  >  PHP でのエンコード変換関数 mb_convert_encoding および iconv の使用手順

PHP でのエンコード変換関数 mb_convert_encoding および iconv の使用手順

WBOY
WBOYオリジナル
2016-06-13 12:20:321004ブラウズ

ただし、通常、英語にはエンコードの問題はなく、中国語のデータのみにこの問題が発生します。たとえば、Zend Studio または Editplus を使用してプログラムを作成する場合、データをデータベースに入力する必要があり、データベース エンコードが utf8 である場合は、データをエンコードして変換する必要があります。そうでない場合は、データをエンコードして変換する必要があります。データベースに入るときに文字化けします。

mb_convert_encoding の公式の使用法を参照してください:
http://cn.php.net/manual/zh/function.mb-convert-encoding.php

GBK を UTF に作成する- 8

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


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


Another GB2312 To Big5

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


header( "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 ; >PHP プログラムで文字エンコーディングを変換するための mb_convert_encoding() メソッドの使用は誰もがよく知っており、大量に使用されます。そして一般に、この方法は十分にうまく機能し、賞賛に値します。しかし、プロジェクトで UTF8 を GBK に変換するためにこれを使用する必要があり、一部の特殊文字を変換するときに小さな問題が見つかりました。具体的なパフォーマンスは、utf8 ではエンコードできるが gbk ではエンコードできない文字を mb が変換することです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。