ホームページ >バックエンド開発 >PHPチュートリアル >PHP でのエンコード変換関数 mb_convert_encoding および iconv の使用手順とはどういう意味ですか?

PHP でのエンコード変換関数 mb_convert_encoding および iconv の使用手順とはどういう意味ですか?

WBOY
WBOYオリジナル
2016-07-29 08:41:291367ブラウズ

ただし、通常、英語にはエンコードの問題はなく、中国語のデータのみにこの問題が発生します。たとえば、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") ;
?>


Big5 への別の GB2312

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


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 関数は、元のエンコーディングが特定できない場合、または変換後に 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 で mb_convert_encoding を使用する場合の小さな落とし穴
PHP プログラム () の文字エンコード変換方法は誰もがよく知っており、大量に使用されています。そして一般に、この方法は十分にうまく機能し、賞賛に値します。しかし、あるプロジェクトでは、UTF8 を GBK に変換するためにこれを使用する必要があり、一部の特殊文字を変換するときに小さな問題が見つかりました。具体的なパフォーマンスは、utf8 ではエンコードできるが gbk ではエンコードできない文字を mb が変換することです。
上記では、PHP でのエンコーディング変換関数 mb_convert_encoding と iconv の使用方法を説明しました。これが、PHP チュートリアルに興味のある友人に役立つことを願っています。

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