mb_detect_encodingDétecte un encodage
&reftitle.description;
stringfalsemb_detect_encodingstringstringarraystringnullencodings&null;boolstrict&false;
Détecte l'encodage le plus probable pour la &string;
string depuis une liste de candidats.
À partir de PHP 8.1, cette fonction utilise des heuristiques pour détecter lequel des encodages de texte valides dans la liste spécifiée
est le plus susceptible d'être correct et peut ne pas être dans l'ordre des encodings fournis.
La détection automatique du jeu d'encodage prévu n'est jamais totalement
fiable ; sans information additionnelle, c'est similaire à décoder une
chaîne chiffrée sans la clé. Il est toujours préférable d'utiliser une
indication du jeu d'encodage stockée ou transmise avec les données,
tel que l'en-tête HTTP "Content-Type".
Cette fonction est la plus utile avec les encodages multioctets, où
pas toutes les séquences d'octets forment une chaîne valide. Si la chaîne
d'entrée contient une telle séquence,
cet encodage sera rejeté.
Le résultat n’est pas fiable
Le nom de cette fonction est trompeur, elle effectue une « supposition » plutôt qu’une « détection ».
Les suppositions sont loin d’être précises, et par conséquent, cette fonction ne permet pas
de détecter avec fiabilité l’encodage correct des caractères.
&reftitle.parameters;
string
La string inspectée.
encodings
Une liste d'encodages de caractères à essayer. Cette liste peut être spécifiée
comme un &array; de &string;, ou en tant qu'une &string; unique séparée par des virgules.
Si encodings est omis ou &null;,
le detect_order actuel (défini avec l'option de configuration
mbstring.detect_order,
ou la fonction mb_detect_order) sera utilisé.
strict
Contrôle le comportement quand string n'est
valide dans aucun des encodings listés.
Si strict est défini à &false;, l'encodage qui
correspond le plus sera retourné ; si strict
est défini à &true;, &false; sera retourné.
La valeur par défaut de strict peut être définie
avec l'option de configuration
mbstring.strict_detection.
&reftitle.returnvalues;
L'encodage de caractère détecté, ou &false; si la chaîne n'est valide
dans aucun des encodages listés.
&reftitle.changelog;
&Version;&Description;8.2.0mb_detect_encoding ne renverra plus
les encodages non textuels suivants :
"Base64", "QPrint",
"UUencode", "HTML entities",
"7 bit" et "8 bit".
&reftitle.examples;
Exemple avec mb_detect_encoding
]]>
&example.outputs;
Effet du paramètre strict
]]>
&example.outputs;
Dans certains cas, la même séquence d'octets peut former une chaîne valide
dans différents encodages de caractères, et il est impossible de déterminer
quelle interprétation était prévue. Un exemple, parmi tant d'autres,
la séquence d'octets "\xC4\xA2" pourrait être :
"Ä¢" (U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS suivi d'U+00A2 CENT SIGN)
encodé en ISO-8859-1, ISO-8859-15, ou Windows-1252
"ФЂ" (U+0424 CYRILLIC CAPITAL LETTER EF suivi d'U+0402 CYRILLIC CAPITAL LETTER
DJE) encodé en ISO-8859-5
"Ģ" (U+0122 LATIN CAPITAL LETTER G WITH CEDILLA) encodé en UTF-8
Effet de l'ordre quand plusieurs encodages correspondent
]]>
&example.outputs;
&reftitle.seealso;
mb_detect_order