Position actuelle: Accueil> Derniers articles> Solution complète aux caractères chinois tronqués en PHP : vous apprendrez à résoudre complètement le problème des noms chinois tronqués

Solution complète aux caractères chinois tronqués en PHP : vous apprendrez à résoudre complètement le problème des noms chinois tronqués

M66 2025-11-06

La cause du problème de nom chinois tronqué en PHP

Lors du développement de PHP, le problème des noms chinois tronqués se produit souvent. La raison en est généralement des jeux de caractères incohérents, par exemple, le fichier n'est pas encodé en UTF-8, la connexion à la base de données n'est pas définie sur UTF-8 ou l'en-tête de la page HTML ne déclare pas l'encodage correct. Pour résoudre complètement le charabia, la clé est d’assurer un codage cohérent tout au long du projet.

Définir l'encodage du fichier

Assurez-vous d'abord que le format d'encodage du fichier PHP est UTF-8 (pas de BOM). Enregistrez le fichier dans l'éditeur au format d'encodage UTF-8 et définissez l'encodage de sortie via la fonction d'en-tête au début du fichier PHP :

<?php
header('Content-Type: text/html; charset=utf-8');
?>

Définir l'encodage de la connexion à la base de données

Si votre programme PHP doit interagir avec une base de données MySQL, veillez à définir le codage UTF-8 après la connexion. Cela garantit que les données chinoises lues et écrites par la base de données n'apparaîtront pas tronquées :

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);
$conn-> set_charset("utf8");
?>

Définir l'encodage des pages HTML

Lors de la sortie d'une page Web, l'encodage UTF-8 doit également être spécifié, ce qui peut empêcher le navigateur d'analyser de manière incorrecte le contenu de la page :

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Problème de caractères chinois tronqués</title>
</head>
<body>
<?php
echo "Bonjour,monde!";
?>
</body>
</html>

Convertir à l'aide de la fonction mb_convert_encoding

Lorsque l'encodage de la chaîne elle-même est incohérent, vous pouvez utiliser la fonction mb_convert_encoding de PHP pour convertir manuellement en UTF-8 :

<?php
$str = "Caractères chinois tronqués";
$str_utf8 = mb_convert_encoding($str, "UTF-8");
echo $str_utf8;
?>

Définir les informations d'en-tête HTTP

Avant de générer un contenu, la définition des informations d'en-tête HTTP via la fonction d'en-tête peut spécifier clairement le type d'encodage du contenu de sortie, évitant ainsi efficacement les caractères tronqués :

<?php
header('Content-Type: text/html; charset=utf-8');
echo "Bonjour,monde!";
?>

Résumer

L'idée principale pour résoudre le nom chinois tronqué de PHP est de garantir que « l'encodage des fichiers, l'encodage des bases de données, l'encodage des pages Web et l'encodage des en-têtes HTTP » soient unifiés en UTF-8. Tant que l'encodage est cohérent, PHP n'aura plus de caractères tronqués lors du traitement du chinois. Cela améliorera non seulement la compatibilité du site Web, mais rendra également l’affichage chinois plus naturel et plus précis.