ホームページ  >  記事  >  バックエンド開発  >  PHP での文字セット変換のための iconv 関数の使用法の概要、文字セット変換 iconv_PHP チュートリアル

PHP での文字セット変換のための iconv 関数の使用法の概要、文字セット変換 iconv_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:17:28878ブラウズ

PHPでの文字セット変換、文字セット変換iconv関数の使い方のまとめ

iconv 関数ライブラリは、さまざまな文字セット間の変換を完了することができ、PHP プログラミングに不可欠な基本関数ライブラリです。

使い方は以下の通りです:

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

$string = "バンケ ホームへようこそ!";
iconv("utf8","gbk",$string)//文字列エンコーディングを utf8 から gbk に変換します。

は次のように展開されます:

コードをコピーします コードは次のとおりです:
echo $str= 'バンケ ホームへようこそ!';
エコー '
';
echo iconv('GB2312', 'UTF-8', $str); //文字列エンコーディングを GB2312 から UTF-8 に変換します
エコー '
';
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);


備考:

1. iconv は php のデフォルトの機能ではなく、デフォルトでインストールされるモジュールでもあります。使用する前にインストールする必要があります。

Windows2000+phpの場合は、php.iniファイルを変更して、extension=php_iconv.dllの前の「;」を削除できます。同時に、元のphpインストールファイル内のiconv.dllをコピーする必要があります。 winnt/system32 (DLL がこのディレクトリを指している場合、この手順はローカルで実行しませんでした)

Linux 環境では、静的インストールを使用して、configure 時に追加項目 --with-iconv を追加するだけです。iconv 項目は phpinfo に表示されます。 (Linux7.3+Apache4.06+php4.3.2);

これでphpでのiconvの紹介は終わりです

2. iconv 関数を使用して、キャプチャした utf-8 でエンコードされたページを gb2312 に変換します。iconv 関数を使用してキャプチャしたデータをトランスコードするだけで、理由もなくデータが少なくなることがわかりました。その理由は次のとおりです:


コードをコピーします コードは次のとおりです:
string iconv (string in_charset、string out_charset、string str)

注: 変換先のエンコーディングの指定に加えて、2 番目のパラメーターでは、//TRANSLIT と //IGNORE の 2 つの接尾辞を追加することもできます。//TRANSLIT は、直接変換できない文字を 1 つ以上の近似文字に自動的に変換します。 //IGNORE は変換できない文字を無視し、デフォルトの効果は最初の不正な文字から切り捨てられます。 切れたら当然減ります
iconv("UTF-8","GB2312//IGNORE",$string) を次のように変更すると、変換できない文字が無視されます。

追加:

PHP の mb_convert_encoding および iconv 関数の概要

mb_convert_encoding この関数は、iconv 関数と同様に、エンコーディングを変換するために使用されます。

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

mb_convert_encodingの使用方法については、公式Webサイトをご覧ください:

http://cn.php.net/manual/zh/function.mb-convert-encoding.php

GBK を UTF-8 に作成する

コードをコピーします コードは次のとおりです:
header("content-Type: text/html; charset=Utf-8"); //文字コードをutp-8に設定します
echo mb_convert_encoding("My", "UTF-8", "GBK");
?>

もう一つの GB2312 が Big5 に

コードをコピーします コードは次のとおりです:
header("content-Type: text/html; charset=big5");
echo mb_convert_encoding("フレンド", "big5", "GB2312");
?>

ただし、上記の機能を使用するには、インストールする必要がありますが、原則は同じで、php.ini を変更する必要があります。

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 [,混合 from_encoding] )

まず mbstring 拡張ライブラリを有効にし、php.ini の extension=php_mbstring.dll の前にある ; を削除する必要があります。 mb_convert_encoding は複数の入力エンコーディングを指定でき、内容に基づいて自動的に識別しますが、実行効率は iconv よりもはるかに悪いため、なぜこの mb_convert_encoding() 関数を説明する必要があるのでしょうか。答えは以下の通りです:

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

通常は、iconv を使用します。mb_convert_encoding 関数は、元のエンコーディングが特定できない場合、または変換後に iconv が正常に表示できない場合にのみ使用してください。

phpはiconv関数を使用して文字列をutf8からgbkに変換し、特別な文字列を保持する方法!

gbk形式で保存しても表示されません


phpのiconv関数の問題

iconv('gbk','utf-8',$tomename);
こんな感じで書いてみます


utf-8の後のIGMOREはどういう意味ですか?質問してください


http://www.bkjia.com/PHPjc/892263.html

tru​​ehttp://www.bkjia.com/PHPjc/892263.html技術記事 PHP での文字セット変換 iconv 関数の使用法の概要 文字セット変換 iconv iconv 関数ライブラリは、さまざまな文字セット間の変換を完了することができ、PHP プログラミングに不可欠な基本関数ライブラリです。 使い方は...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。