Maison >base de données >tutoriel mysql >Comment assurer un affichage correct des caractères spéciaux dans PHP et MySQL ?

Comment assurer un affichage correct des caractères spéciaux dans PHP et MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-09 20:15:11164parcourir

How to Ensure Correct Display of Special Characters in PHP and MySQL?

Caractères spéciaux en PHP et MySQL

Lorsque vous traitez des caractères spéciaux en PHP et MySQL, des caractères inattendus peuvent apparaître lors de l'affichage des données dans un navigateur. Pour résoudre ce problème, nous explorerons une solution générale.

Selon les informations fournies, le code HTML est correctement défini avec le jeu de caractères UTF-8, et les tables et la base de données MySQL utilisent UTF-8_spanish. Cependant, le caractère représenté par « ? » avec un carré persiste toujours.

La clé pour résoudre ce problème réside dans la communication entre l'application cliente (le script PHP) et MySQL. MySQL doit comprendre dans quel jeu de caractères le client s'attend à recevoir des données.

Pour communiquer cela à MySQL, la commande SET NAMES 'utf8' doit être exécutée comme première requête lors de l'établissement d'une connexion. Cela garantit que toutes les données de chaîne sont transcodées du jeu de caractères interne en UTF-8, l'encodage utilisé par le client.

Pour les scripts PHP utilisant PDO, cela peut être réalisé via la méthode setAttribute :

$db = new PDO($dsn, $user, $password);
$db->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'");

Alternativement, pour les scripts PHP utilisant mysqli, la méthode set_charset peut être utilisée :

$mysqli = new mysqli("localhost", "user", "password", "db");
$mysqli->set_charset("utf8");

Par En mettant en œuvre cette solution, les caractères spéciaux espagnols peuvent être correctement insérés dans la base de données à partir d'un formulaire PHP et affichés dans le navigateur sans aucun caractère tronqué.

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!

Déclaration:
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