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.
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');
?>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");
?>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>
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; ?>
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!";
?>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.