11<?xml version =" 1.0" encoding =" utf-8" ?>
22<!-- $Revision$ -->
3- <!-- EN-Revision: 34f90a65914c900173f9a42331acc45bc53d8eee Maintainer: hirokawa Status: ready -->
3+ <!-- EN-Revision: 7c4b5fb40ac3149a5b931f1e31b1050ab5eaab7e Maintainer: hirokawa Status: ready -->
44<!-- CREDITS: takagi,mumumu -->
55<refentry xml : id =" function.mb-detect-encoding" xmlns =" http://docbook.org/ns/docbook" xmlns : xlink =" http://www.w3.org/1999/xlink" >
66 <refnamediv >
2121 文字列 <parameter >string</parameter >
2222 のもっとも可能性が高い文字エンコーディングを検出します。
2323 </para >
24+ <para >
25+ PHP 8.1 以降では、
26+ この関数は指定されたテキスト中の有効なテキストエンコーディングのうち、
27+ もっとも正しい可能性が高いものを、経験則を用いて検出します。
28+ そのため、<parameter >encodings</parameter > の順番通りでない場合があります。
29+ </para >
2430 <para >
2531 追加の情報なしに、
2632 意図した文字エンコーディングを自動で検出する行為は、
3440 この関数は、全ての文字列が正しいバイト配列とは限らない
3541 マルチバイト文字列を指定するともっとも役に立ちます。
3642 入力となる文字列に誤ったバイトが含まれていた場合、
37- そのエンコーディングは採用されず、次のものを試します 。
43+ そのエンコーディングは採用されません 。
3844 </para >
3945
4046 <warning >
6672 <term ><parameter >encodings</parameter ></term >
6773 <listitem >
6874 <para >
69- 文字エンコーディングの一覧を試す順番に指定します 。
75+ 試す文字エンコーディングの一覧を指定します 。
7076 このリストは、文字列の配列または、
7177 カンマ区切りのリストで指定できます。
7278 </para >
@@ -245,9 +251,10 @@ string(10) "ISO-8859-1"
245251<?php
246252$str = "\xC4\xA2";
247253
248- // 3つ全てのエンコーディングに照らして正しい文字列なので、
249- // 最初のひとつが返されます。
250- var_dump(mb_detect_encoding($str, ['UTF-8', 'ISO-8859-1', 'ISO-8859-5']));
254+ // 3つ全てのエンコーディングに照らして正しい文字列ですが、
255+ // 最初のひとつが常に返されるとは限りません
256+ var_dump(mb_detect_encoding($str, ['UTF-8']));
257+ var_dump(mb_detect_encoding($str, ['UTF-8', 'ISO-8859-1', 'ISO-8859-5'])); // PHP 8.1 以降では、UTF-8 ではなく ISO-8859-1 が返されます
251258var_dump(mb_detect_encoding($str, ['ISO-8859-1', 'ISO-8859-5', 'UTF-8']));
252259var_dump(mb_detect_encoding($str, ['ISO-8859-5', 'UTF-8', 'ISO-8859-1']));
253260?>
@@ -258,6 +265,7 @@ var_dump(mb_detect_encoding($str, ['ISO-8859-5', 'UTF-8', 'ISO-8859-1']));
258265<![CDATA[
259266string(5) "UTF-8"
260267string(10) "ISO-8859-1"
268+ string(10) "ISO-8859-1"
261269string(10) "ISO-8859-5"
262270]]>
263271 </screen >
0 commit comments