|
mb_detect_encoding文字エンコーディングを検出する 説明
stringfalse mb_detect_encoding(string
$string , arraystringnull $encodings = null , bool $strict = false )
エンコーディングの候補の一覧から、
文字列 追加の情報なしに、 意図した文字エンコーディングを自動で検出する行為は、 全く役に立ちません。 これは、暗号化された文字列を鍵なしにデコードする行為に似ています。 "Content-Type" HTTP ヘッダのような、 データを転送された際に付いてくる情報や、 保存された文字エンコーディングに関する指示を指定することが常に望ましいです。 この関数は、全ての文字列が正しいバイト配列とは限らない マルチバイト文字列を指定するともっとも役に立ちます。 入力となる文字列に誤ったバイトが含まれていた場合、 そのエンコーディングは採用されず、次のものを試します。 パラメータ
戻り値
検出した文字エンコーディングを返します。
指定したエンコーディングの全てに対して、不正と判定された場合は 変更履歴
例
例1 mb_detect_encoding の例
例2
上の例の出力は以下となります。 string(5) "UTF-8" bool(false) string(10) "ISO-8859-1" string(10) "ISO-8859-1" 場合によっては、同じバイト配列が、 複数の文字エンコーディング的に正しいかもしれませんが、 どの解釈が意図されたものなのかを知ることは不可能です。 たとえば、 バイト配列 "\xC4\xA2" は、 以下のように解釈できます:
例3 複数のエンコーディングと一致した場合の効果
上の例の出力は以下となります。 string(5) "UTF-8" string(10) "ISO-8859-1" string(10) "ISO-8859-5" 参考
|