Maison > développement back-end > Problème PHP > Comment convertir le chinois en codage utf-8 en php

Comment convertir le chinois en codage utf-8 en php

PHPz
Libérer: 2023-04-06 13:04:01
original
754 Les gens l'ont consulté

Pendant le processus de développement, nous rencontrons souvent des problèmes de conversion d'encodage, tels que la conversion de GBK en UTF-8. En PHP, nous pouvons utiliser la fonction iconv() pour effectuer cette tâche. La syntaxe de

iconv est la suivante :

string iconv ( string $in_charset , string $out_charset , string $str )
Copier après la connexion

Parmi eux, $in_charset représente le jeu de caractères d'entrée, $out_charset représente le jeu de caractères de sortie et $str représente la chaîne qui doit être convertie.

Par exemple, le code suivant convertit une chaîne codée GBK en codage UTF-8 :

$str = "中文字符串";
$str = iconv("GBK", "UTF-8", $str);
echo $str;
Copier après la connexion

Si vous devez convertir toutes les chaînes de l'ensemble du tableau ou de l'objet, vous pouvez utiliser le parcours récursif pour le compléter, le code est comme suit :

function convert_to_utf8($data) {
    if (is_array($data)) {
        foreach ($data as &$value) {
            $value = convert_to_utf8($value);
        }
        unset($value);
    } elseif (is_object($data)) {
        foreach ($data as &$value) {
            $value = convert_to_utf8($value);
        }
        unset($value);
    } elseif (is_string($data)) {
        $data = iconv('GBK', 'UTF-8', $data);
    }
    return $data;
}
Copier après la connexion

Utilisation :

$array = array('name' => '张三', 'age' => '18');
$array_utf8 = convert_to_utf8($array);
print_r($array_utf8);
Copier après la connexion

Résultat de sortie :

Array
(
    [name] => 张三
    [age] => 18
)
Copier après la connexion

Il convient de noter que la fonction iconv a un piège, c'est-à-dire qu'elle retournera false lorsqu'elle rencontrera des caractères qui ne peuvent pas être convertis. Par conséquent, nous devons ajouter un mécanisme de gestion des erreurs lors de l'utilisation d'iconv, par exemple :

$str = '中文文本';
$str = @iconv("GBK", "UTF-8//IGNORE", $str);
Copier après la connexion

Dans le code ci-dessus, "//IGNORE" signifie ignorer les caractères qui ne peuvent pas être convertis, afin d'éviter les fausses situations.

En général, bien que la fonction iconv fournie par PHP puisse facilement effectuer la conversion de l'encodage, dans la pratique, nous devons quand même faire attention à certains détails pour éviter les erreurs lorsque nous rencontrons des situations particulières.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal