Dans le développement Web, nous devons souvent traiter les données soumises par les formulaires, mais lorsque nous utilisons PHP pour traiter les soumissions de formulaires, nous rencontrerons le problème des caractères chinois tronqués. En effet, dans le protocole HTTP, les caractères transmis sont codés en URL et, par défaut, les données soumises par le formulaire sont transmises au format de codage ISO-8859-1, qui est incompatible avec le jeu de caractères chinois. il y a des problèmes avec les caractères chinois tronqués.
Afin de résoudre ce problème, nous devons traiter les données du formulaire en code PHP. Cet article présentera plusieurs méthodes pour résoudre le problème des caractères chinois tronqués lors de la soumission de formulaires.
1. Définir le format d'encodage du formulaire
Lors de l'écriture d'un formulaire HTML, nous pouvons spécifier le format d'encodage du formulaire en définissant l'attribut enctype du formulaire. Il existe deux formats d'encodage les plus courants : application/x-www-form-urlencoded et multipart/form-data. Parmi eux, application/x-www-form-urlencoded est le format de codage par défaut, qui code les données en caractères ASCII lisibles et convient à la plupart des situations. Multipart/form-data convient au téléchargement de fichiers et à d’autres situations. De plus, il existe un format de codage texte/brut, qui n'effectue aucun traitement de codage sur les données et convient aux données en texte brut.
Nous pouvons utiliser le code suivant pour définir le format d'encodage du formulaire :
<form action="process.php" method="post" enctype="application/x-www-form-urlencoded"> <input type="text" name="username"> <input type="submit" value="Submit"> </form>
2. Définir le format d'encodage de la page PHP
Dans le code PHP, nous devons utiliser la fonction d'en-tête pour définir le format d'encodage de la page, sinon cela peut être possible lors de la sortie du code HTML. Des caractères tronqués apparaîtront. Nous pouvons utiliser le code suivant pour définir le format d'encodage de la page sur UTF-8 :
header("Content-type:text/html;charset=utf-8");
3. Utilisez la fonction iconv pour convertir l'encodage
Si les données soumises par le formulaire sont toujours tronquées, nous pouvons utiliser la fonction iconv pour convertir les données dans le jeu de caractères spécifié.
$str = $_POST["username"]; $str = iconv("gb2312", "utf-8//IGNORE", $str); //将gb2312编码的字符串转换为utf-8
Parmi eux, gb2312 est un jeu de caractères chinois courant et utf-8 est un jeu de caractères universel. Nous pouvons également utiliser d'autres jeux de caractères pour la conversion.
4. Utilisez la fonction mb_convert_encoding pour convertir les encodages
La fonction mb_convert_encoding peut également convertir une chaîne d'un jeu de caractères à un autre.
$str = $_POST["username"]; $str = mb_convert_encoding($str, "utf-8", "gb2312"); //将gb2312编码的字符串转换为utf-8
5. Définir le fichier PHP.ini
Enfin, nous pouvons également définir le jeu de caractères par défaut dans le fichier de configuration PHP php.ini.
default_charset = "utf-8"
De cette façon, il n'est pas nécessaire de définir le format d'encodage de la page dans le code PHP.
Résumé
Pour résoudre le problème des caractères chinois tronqués lors de la soumission d'un formulaire, nous pouvons prendre les mesures suivantes :
Les méthodes ci-dessus ne sont que des méthodes de traitement courantes. En fait, il existe de nombreuses autres méthodes de traitement. Au cours du processus de développement, nous devons choisir la méthode la plus appropriée pour résoudre le problème chinois en fonction de la situation spécifique.
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!