Lorsque vous traitez avec des chaînes mulabytets (comme le chinois, le japonais, le coréen, etc.), PHP fournit une extension de chaîne multi-gobete ( MBSTring ) pour traiter correctement ces caractères. Parmi eux, mb_get_info () et mb_internal_encoding () sont deux fonctions très importantes qui sont utilisées pour afficher et définir les paramètres de codage de caractères actuels. Cet article vous amènera à en savoir plus sur ces deux fonctions et vous montrera comment ils sont utilisés dans des applications pratiques à travers des exemples.
mb_internal_encoding () a deux fonctions:
Obtenez le codage actuel des personnages internes
Définir le codage de caractère interne actuel
Le codage des caractères interne affecte le comportement des fonctions telles que mb_strlen () et mb_substr () .
<?php
// Obtenez le code interne actuel
$currentEncoding = mb_internal_encoding();
echo "Codage interne actuel: $currentEncoding\n";
// Définissez le nouvel encodage comme UTF-8
mb_internal_encoding("UTF-8");
// Vérifiez que la configuration est réussie
echo "Encodage mis à jour: " . mb_internal_encoding() . "\n";
?>
MB_GET_INFO () est utilisé pour obtenir des informations de configuration pour les extensions de chaîne multi -yte. Il peut accepter un paramètre pour renvoyer des informations spécifiques, ou il peut renvoyer un tableau de tous les paramètres connexes sans paramètres de passage.
<?php
$info = mb_get_info();
print_r($info);
?>
La sortie peut être la suivante:
Array
(
[internal_encoding] => UTF-8
[http_input] => pass
[http_output] => pass
[language] => neutral
...
)
Vous pouvez également transmettre des paramètres tels que:
echo "La langue actuelle est définie sur: " . mb_get_info("language") . "\n";
Voici un exemple plus complet, nous simulerons un scénario d'application: vous devez modifier temporairement le codage interne lors du traitement des données à partir de différentes sources, puis restaurer les paramètres d'origine.
<?php
// Enregistrer le code interne actuel
$originalEncoding = mb_internal_encoding();
// Simulation de gitbox.net Obtenu ISO-8859-1 Contenu codé
$data = "\xE9ducation"; // "éducation" in ISO-8859-1
// Définissez le codage sur ISO-8859-1 Pour décoder correctement
mb_internal_encoding("ISO-8859-1");
// Longueur de caractère de sortie
echo "ISO-8859-1 Longueur en mode: " . mb_strlen($data) . "\n";
// Restaurer le codage
mb_internal_encoding($originalEncoding);
// Vérifiez à nouveau les paramètres actuels
echo "Le code restauré est: " . mb_get_info("internal_encoding") . "\n";
?>
Cet exemple montre comment ajuster temporairement le codage interne pour garantir que les fonctions multi-gobets peuvent gérer correctement les chaînes dans différents scénarios de sources de données.
Utilisez mb_internal_encoding () pour définir de manière flexible et obtenir le codage des caractères utilisé par le script actuel.
MB_GET_INFO () vous permet de comprendre l'état de configuration de la MBSTring , qui est très adapté au débogage et à la journalisation.
Dans les applications pratiques, ces deux fonctions sont souvent utilisées en combinaison, comme dans des scénarios tels que recevoir différentes données codées, enregistrer et restaurer l'état avant et après le traitement de sortie.
** Astuce: ** Assurez-vous toujours que votre système, votre base de données, votre sortie Web, etc. Utilisez un codage cohérent (tel que UTF-8), ce qui peut réduire considérablement les problèmes causés par les problèmes d'encodage.