ホームページ バックエンド開発 PHPチュートリアル php_PHP チュートリアルの mb_convert_encoding と iconv の違い

php_PHP チュートリアルの mb_convert_encoding と iconv の違い

Jul 13, 2016 am 10:55 AM
convert encoding iconv php 関数 違い そして はい これ

mb_convert_encoding この関数はエンコーディングを変換するために使用されます。私はプログラムコーディングの概念を理解していませんでしたが、今では少し理解できるようになりました。 ただし、通常、英語にはエンコードの問題はなく、中国語のデータのみにこの問題が発生します。

たとえば、Zend Studio または Editplus を使用してプログラムを作成する場合、データをデータベースに入力する必要があり、データベース エンコーディングが utf8 である場合は、データをエンコードして変換する必要があります。それ以外の場合は、gbk エンコーディングを使用します。データが文字化けしてしまいます。

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

mb_convert_encoding — 文字エンコーディングを変換する

バグを報告する 説明
string mb_convert_encoding ( string $str , string $to_encoding [,mixed $from_encoding ] )
文字列 str の文字エンコーディングを、オプションで from_encoding から to_encoding に変換します。

バグパラメータを報告する

ストラ
エンコードされる文字列。

to_encoding
str が変換されるエンコーディングのタイプ。

from_encoding
変換前の文字コード名で指定します。from_encodingが指定されていない場合は、配列またはカンマ区切りの列挙リストになります。

サポートされているエンコーディングを参照してください。


バグの戻り値を報告する
エンコードされた文字列。

バグの例を報告する

例 #1 mb_convert_encoding() の例

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

/* 内部文字エンコーディングを SJIS に変換します */
$str = mb_convert_encoding($str, "SJIS");

/* EUC-JP を UTF-7 に変換 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");

/* 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");
?>

mb_convert_encoding( $str, $encoding1,$encoding2 )

$str、変換される文字列
$encoding1、ターゲット エンコーディング (utf-8、gbk など)、大文字と小文字の両方
$encoding2、utf-8、gbkなどのオリジナルのエンコーディング、大文字と小文字の両方が使用可能

例1

コードは次のとおりです コードをコピー
$str='スクリプト ホーム: http://www.bKjia.c0m'; echo mb_convert_encoding($str, "UTF-8") // エンコーディングを utf-8 に変換します
?>

コードは次のとおりですコードをコピー $str='スクリプト ホーム: http://www.bKjia.c0m'; echo mb_convert_encoding($str, "UTF-8", "GBK"); //元のエンコーディングが GBK であることがわかっているので、utf-8 に変換します
?>

コードは次のとおりです $str='スクリプト ホーム: http://www.bKjia.c0m'; echo mb_convert_encoding($str, "UTF-8", "auto"); //元のエンコーディングが不明なので、auto による自動検出の後、エンコーディングを utf-8 に変換します
コードをコピー
?>


GBK を UTF-8 に作成する

もう一つの GB2312 が Big5 に
コードは次のとおりです コードをコピー
header("content-Type: text/html; charset=Utf-8"); echo mb_convert_encoding("???S私の友達", "UTF-8", "GBK"); ?>

コードは次のとおりです header("content-Type: text/html; charset=big5"); echo mb_convert_encoding("あなたは私の友達です", "big5", "GB2312"); ?> PHP の別の関数 iconv も文字列エンコーディングの変換に使用され、その関数は上記の関数と似ています。
コードをコピー



ただし、上記の機能を使用するには、まずmbstring拡張ライブラリをインストールして有効にする必要があります。

以下にいくつかの詳細な例があります:

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;

よりもはるかに悪くなります。


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 を使用します。mb_convert_encoding 関数は、元のエンコーディングが特定できない場合、または変換後に iconv が正常に表示できない場合にのみ使用してください。
from_encoding は、変換前の文字コード名で指定されます。配列または文字列 (カンマ区切りの列挙リスト) が可能です。指定されていない場合は、内部エンコーディングが使用されます。

コードは次のとおりです

コードをコピー

/* JIS、eucjp-win、sjis-win からエンコードを自動検出し、str を UCS-2LE に変換します */ /* 「auto」は「ASCII,JIS,UTF-8,EUC-JP,SJIS」に展開されます */コードは次のとおりです
$str = mb_convert_encoding($str, “UCS-2LE”, “JIS, eucjp-win, sjis-win”); $str = mb_convert_encoding($str, “EUC-JP”, “auto”);
例:


コードをコピー

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

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632197.html技術記事 mb_convert_encoding 関数は、エンコーディングを変換するために使用されます。私はプログラムコーディングの概念を理解していませんでしたが、今では少し理解できるようになりました。ただし、通常、英語でのコーディングの問題はありません...
$content = mb_convert_encoding($content, “UTF-8”, “GBK”);
通常は、iconv を使用します。mb_convert_encoding 関数は、元のエンコーディングがわからない場合、または変換後に iconv が正常に表示できない場合にのみ使用してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

C言語関数の基本的な要件は何ですか C言語関数の基本的な要件は何ですか Apr 03, 2025 pm 10:06 PM

C言語関数は、コードモジュール化とプログラム構築の基礎です。それらは、宣言(関数ヘッダー)と定義(関数体)で構成されています。 C言語は値を使用してパラメーターをデフォルトで渡しますが、外部変数はアドレスパスを使用して変更することもできます。関数は返品値を持つか、または持たない場合があり、返品値のタイプは宣言と一致する必要があります。機能の命名は、ラクダを使用するか、命名法を強調して、明確で理解しやすい必要があります。単一の責任の原則に従い、機能をシンプルに保ち、メンテナビリティと読みやすさを向上させます。

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

CとC#の違いと接続は何ですか? CとC#の違いと接続は何ですか? Apr 03, 2025 pm 10:36 PM

CとC#には類似点がありますが、それらは完全に異なります。Cはプロセス指向の手動メモリ管理、およびシステムプログラミングに使用されるプラットフォーム依存言語です。 C#は、デスクトップ、Webアプリケーション、ゲーム開発に使用されるオブジェクト指向のガベージコレクション、およびプラットフォーム非依存言語です。

XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? XPathを使用して、JavaScriptの指定されたDOMノードから検索する方法は? Apr 04, 2025 pm 11:15 PM

JavaScriptのDOMノードの下でのXpath検索方法の詳細な説明、XPath式に基づいてDOMツリーから特定のノードを見つける必要があることがよくあります。あなたがする必要があるなら...

PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 PHP関数引数と配列の開梱で...(SPLAT)演算子の目的と使用について説明してください。 Apr 06, 2025 am 12:07 AM

PHPの...(SPLAT)演算子は、機能パラメーターと配列を開梱するために使用され、コードのシンプルさと効率を向上させます。 1)関数パラメーター解放:アレイ要素をパラメーターとして関数に渡します。 2)配列の開梱:アレイを別の配列または関数パラメーターに解除します。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

Routerフォルダーの下のindex.jsファイルでvue.use(vuerouter)を呼び出す必要があるのはなぜですか? Routerフォルダーの下のindex.jsファイルでvue.use(vuerouter)を呼び出す必要があるのはなぜですか? Apr 05, 2025 pm 01:03 PM

Vueアプリケーションを開発するときに、ルーターフォルダーの下にindex.jsファイルにvuerouterを登録する必要性があるため、ルーティング構成で問題が発生することがよくあります。特別...

See all articles