La fonction de MB_Substitute_Character est de définir la fonction de chaîne multi-octets ( MB_CONVERT_ENCODING , etc.) pour remplacer les caractères qui ne peuvent pas être convertis. Son prototype de fonction est le suivant:
mb_substitute_character([ mixed $substchar = null ]): mixed
Paramètre $ subschar : facultatif, spécifiant le type de caractère de substitution.
Valeur de retour : si un paramètre est passé, le paramètre de caractères de substitution précédent est renvoyé; Si le paramètre n'est pas passé, le paramètre de caractère de substitution actuel est renvoyé.
Le paramètre $ subschar peut accepter les valeurs des types suivants:
Valeur entière (0-255)
Code ASCII représentant des caractères à un octet. Par exemple:
mb_substitute_character(63); // Définissez le caractère alternatif àASCIIPoint d'interrogation '?'
Chaîne <br> Une chaîne peut être transmise pour représenter des caractères alternatifs spécifiques. Par exemple:
mb_substitute_character('?'); // utiliser“Personnages alternatifs”symbole(U+FFFD)
Constantes prédéfinies
PHP possède plusieurs constantes de caractères alternatives couramment utilisées dans:
Mb_substitute_none : non remplacé, si les mauvais caractères sont rencontrés, ils seront rejetés directement.
Mb_substitute_character : utilisez des caractères alternatifs (généralement "?" Ou "?").
MB_Substitute_entity : utilisez plutôt une entité HTML.
MB_SUBSTITUTE_STRING : chaîne de substitut personnalisée (doit être adaptée en plus avec les paramètres MB_Substitute_Character ).
Par exemple:
mb_substitute_character(MB_SUBSTITUTE_CHARACTER);
Passer en nombres illégaux ou des cordes <br> De nombreux débutants passeront au hasard un nombre ou une chaîne, entraînant des paramètres de caractère de substitut non valides ou des résultats inattendus. MB_SUBSTITUTE_CHARACTER nécessite que le nombre doit être compris entre 0 et 255 et la chaîne doit être un seul caractère ou une constante prédéfinie.
Ignorer la valeur de retour <br> Cette fonction renvoie les paramètres de caractère alternatifs précédents, et ignorer la valeur de retour peut rendre difficile le suivi de l'état de caractère alternatif actuel dans des programmes complexes.
Utilisation abusive des noms constants <br> Parfois, il sera mal orthographié ou utilisé de manière incorrecte. Par exemple, l'écriture en tant que MB_SUBSTITUTE_CHAR au lieu de MB_SUBSTITUTE_CHARACTER entraîne une erreur.
Confusion des caractères alternatifs avec les paramètres de codage
MB_substitute_character ne définit que des caractères de substitution et n'a aucune relation directe avec MB_internal_encoding ou mb_detect_encoding , mais est facilement mal compris.
<?php
// Définissez le caractère alternatif à问号 '?'
mb_substitute_character(63);
$str = "こんにちはmonde"; // "Hello world"japonais
// 故意utiliser错误编码转换
$converted = mb_convert_encoding($str, "ASCII", "UTF-8");
echo $converted; // Les caractères qui ne peuvent pas être convertis sont remplacés par '?'
?>
Pour plus de détails, veuillez consulter la documentation officielle PHP:
<code> https://gitbox.net/manual/zh/function.mb-substitute-character.php </code>