PHP文字列エンコーディング変換iconvとmb_convert_encodingの違い
PHP 文字列エンコード関数 mb_detect_encoding の概要
iconv — 文字列を要求された文字エンコーディングに変換します(PHP 4 >= 4.0.5、PHP 5)
mb_convert_encoding — 文字エンコーディングを変換する(PHP 4 >= 4.0.6, PHP 5)
iconv — 必要な文字エンコーディングに従って文字列を変換します
mb_convert_encoding — 文字エンコーディングを変換する
これら 2 つの関数は同様の機能を持ち、文字列エンコーディングを変換するために使用されます。
使用法:
string mb_convert_encoding ( string str, string to_encoding [,mixed from_encoding] )
注: まず mbstring 拡張ライブラリを有効にし、php.ini
の extension=php_mbstring.dll の前にある ; を削除する必要があります。
パラメータ: str - エンコードする str、to_encoding - エンコード タイプに変換する str、from_encoding - 変換前の文字コード名で指定します。 配列またはカンマ区切りの列挙リストを指定できます。 from_encoding が指定されていない場合は、内部エンコーディングが使用されます。 サポートされているエンコーディングを参照してください。
サポートされている文字エンコーディング
現在、mbstring モジュールは次の文字エンコーディングをサポートしています。これらの文字エンコーディングはいずれも、mbstring 関数のエンコーディング パラメーターとして指定できます。
この PHP 拡張機能でサポートされている文字エンコーディングは次のとおりです:
UCS-4*
UCS-4BE
UCS-4LE*
UCS-2
UCS-2BE
UCS-2LE
UTF-32*
UTF-32BE*
UTF-32LE*
UTF-16*
UTF-16BE*
UTF-16LE*
UTF-7
UTF7-IMAP
UTF-8*
ASCII*
EUC-JP*
SJIS*
eucJP-win*
SJIS-win*
ISO-2022-JP
ISO-2022-JP-MS
CP932
CP51932
SJIS-mac** (別名: MacJapanese)
SJIS-Mobile#DOCOMO** (別名: SJIS-DOCOMO)
SJIS-Mobile#KDDI** (別名: SJIS-KDDI)
SJIS-Mobile#ソフトバンク** (別名: SJIS-ソフトバンク)
UTF-8-Mobile#DOCOMO** (別名: UTF-8-DOCOMO)
UTF-8-Mobile#KDDI-A**
UTF-8-Mobile#KDDI-B** (別名: UTF-8-KDDI)
UTF-8-Mobile#SOFTBANK** (エイリアス: UTF-8-SOFTBANK)
ISO-2022-JP-MOBILE#KDDI** (別名: ISO-2022-JP-KDDI)
JIS
JIS-ms
CP50220
CP50220生
CP50221
CP50222
ISO-8859-1*
ISO-8859-2*
ISO-8859-3*
ISO-8859-4*
ISO-8859-5*
ISO-8859-6*
ISO-8859-7*
ISO-8859-8*
ISO-8859-9*
ISO-8859-10*
ISO-8859-13*
ISO-8859-14*
ISO-8859-15*
byte2be
byte2le
byte4be
byte4le
BASE64
HTML エンティティ
7ビット
8ビット
EUC-CN*
CP936
GB18030**
ヘルツ
EUC-TW*
CP950
BIG-5*
EUC-KR*
UHC (CP949)
ISO-2022-KR
Windows-1251 (CP1251)
Windows-1252 (CP1252)
CP866 (IBM866)
KOI8-R*
* は、エンコーディングが正規表現でも使用できることを示します。
** は、このエンコーディングが PHP 5.4.0 以降で利用できることを示します。
エンコードされた名前を受け入れる php.ini エントリでは、「auto」値と「pass」値も使用できます。 エンコーディング名を受け入れる mbstring 関数でも、値「auto」を使用できます。
「pass」を設定した場合、文字コードは変換されません。
「auto」が設定されている場合、NLS で定義されているすべての文字エンコーディング リストに拡張されます。 たとえば、NLS が日本語に設定されているとすると、値は「ASCII,JIS,UTF-8,EUC-JP,SJIS」とみなされます。
NLS: 各国語サポート
string iconv ( string in_charset, string out_charset, string str )
注:
2 番目のパラメーターは、変換先のエンコーディングの指定に加えて、//TRANSLIT と //IGNORE、
の 2 つの接尾辞を追加することもできます。
その中には:
//TRANSLIT は、直接変換できない文字を 1 つ以上の近似文字
に自動的に変換します。
//IGNORE は変換できない文字を無視し、デフォルトの効果は最初の不正な文字から切り捨てられます。
変換された文字列を返すか、失敗した場合は FALSE を返します (変換された文字列を返します。実行が失敗した場合は FALSE を返します)。
使用:
1. iconv が文字「-」を gb2312 に変換するときにエラーが発生することがわかりました。ignore パラメータを指定しないと、この文字に続くすべての文字列を保存できません。この「-」はどうやってもうまく変換できず出力できません。 なお、mb_convert_encoding にはこのバグはありません。
2. mb_convert_encoding は複数の入力エンコーディングを指定でき、内容に基づいて自動的に識別されますが、実行効率は次のような iconv よりもはるかに悪くなります。
$str = mb_convert_encoding($str,"euc-jp","ASCII,JIS,EUC-JP,SJIS,UTF-8");「ASCII,JIS,EUC-JP,SJIS,UTF-8」の順序は異なる効果もあります。
3. 通常の状況では、iconv を使用します。mb_convert_encoding 関数は、元のエンコーディングが特定できない場合、または変換後に iconv が正常に表示されない場合にのみ使用してください。
from_encodingは変換前の文字コード名で指定します。配列またはカンマ区切りの文字列
で指定できます。
列挙型リストが指定されていない場合は、内部エンコーディングが使用されます。
$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", $content);
$content = mb_convert_encoding($content, "UTF-8", "GBK");
/* 转换内部编码为 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");
$text = "This is the Euro symbol '€'."; echo 'Original : ', $text, PHP_EOL; echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL; echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL; echo 'Plain : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL; 输出结果: Original : This is the Euro symbol '€'. TRANSLIT : This is the Euro symbol 'EUR'. IGNORE : This is the Euro symbol ''. Plain : Notice: iconv(): Detected an illegal character in input string in .\iconv-example.php on line 7 This is the Euro symbol '

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP では、ord() 関数を使用して文字を ASCII コードに変換できます。この関数は、単一文字または文字列の最初の文字の ASCII 値を返すことができます。返された ASCII 値は整数形式で表示されます。構文 "ord (string)" の場合、パラメータ "string" は省略できません。ASCII 値を取得する文字列 (または単一の文字) です。

PHP 文字列内の特定の文字を null 文字に置き換える方法は 2 つあります: 1. str_replace() 関数を使用して、指定された文字を null 文字に置き換えます。最初のパラメータを指定された文字に設定し、 null 文字への 2 番目のパラメータ。構文 "str_replace("指定された文字","", $str)"; 2. preg_replace() 関数を正規表現とともに使用して、指定された文字と一致し、それを null 文字で置き換えます。構文 " preg_replace('/指定文字/', "",$str)"。

2 つの削除方法: 1. preg_replace() を使用して正規表現を実行し、すべての大文字を検索し、null 文字に置き換えます。構文は「preg_replace('/[A-Z]/','',$str)」です。 2. preg_filter() を使用して正規表現を実行し、すべての大文字を検索し、空文字に置き換えます。構文は「preg_filter('/[A-Z]/','',$str)」です。

PHP は、Web アプリケーションの開発によく使用される型付きプログラミング言語です。 Web 開発中は、文字列から特定の文字を削除する、文字列内の数字や文字を保持するなど、文字列に対してさまざまな操作を実行する必要がある場合があります。この記事では、PHP で文字列の左側または右側にある特定の文字を削除する方法に焦点を当てます。

2 つの方法: 1. 通常のフィルター文字列で preg_match_all() を使用します。構文は "preg_match_all("/[\x{4e00}-\x{9fff}]+/u","$str",$arr);" です。 ; 2. preg_replace() を使用して文字列内の中国語以外の文字を通常検索し、空の文字に置き換えます。構文は "preg_replace("/[^\x{4E00}-\x{9FFF}]+/u) です。 " ,",$str)"。

PHP では文字列に文字を追加できます。 2 つの実装方法: 1. 文字列コネクタ「.」を使用して、指定された文字を文字列の先頭または末尾に接続します。構文は、「指定された文字.文字列」または「文字列.指定された文字」です。 2. substr_replace を使用します ( ) 関数は、文字列の指定された位置に指定された文字を挿入します。構文は "substr_replace(string, 指定された文字, 指定された位置, 0)" です。指定された位置の値は 0、負または正のいずれかになります。

PHP は非常に人気のあるプログラミング言語であり、動的な Web サイトを構築するための推奨ツールの 1 つです。 PHP 開発では、文字列を操作する必要があることがよくありますが、一般的な要件の 1 つは文字列から二重引用符を削除することです。この記事では、PHP 文字列から二重引用符を削除する方法をいくつか紹介します。

実装手順: 1. str_split() 関数を使用して文字列を文字配列に変換します (構文は "str_split(string)" です; 2. asort() または arsort() 関数を使用して文字配列を昇順または昇順に並べ替えます降順、構文「asort (文字配列)」または「arsort (文字配列)」; 3. implode() 関数を使用して、ソートされた文字配列を文字列に変換します。構文は「implode (ソートされた文字配列)」です。 」。
