Lorsque PHP interagit avec une base de données, le champ de passe-temps contient souvent des caractères spéciaux, tels que les emojis et les caractères Unicode. Si la base de données ou le codage de la page ne sont pas définis correctement, ces caractères apparaissent souvent à des exceptions brouillées ou affichées. Cet article mettra en place comment s'assurer que le contenu du champ de passe-temps peut être affiché normalement en configurant correctement le codage.
Lorsque PHP se connecte à une base de données, si le jeu de caractères de la table de base de données n'est pas UTF-8, ou si la page PHP ne définit pas le codage correct, il entraînera des caractères spéciaux normalement. Les champs de loisirs contiennent généralement des caractères divers, et le codage par défaut est souvent incompatible et des exceptions d'affichage apparaissent.
Tout d'abord, il est nécessaire de s'assurer que le jeu de caractères de la table de base de données est UTF-8. Vous pouvez modifier le jeu de caractères d'une table existante via la commande SQL suivante:
<span class="fun">ALTER TABLE NAME CONVERT EN CHARGET SET UTF8 COLLATE UTF8_GERAL_CI;</span>
Lors de la création d'une nouvelle table, vous devez spécifier le jeu de caractères comme UTF-8:
CREATE TABLE Nom de table (
...
) CHARACTER SET utf8 COLLATE utf8_general_ci;
Lors de la connexion à la base de données, vous devez définir le jeu de caractères client sur UTF-8. L'exemple est le suivant:
$mysqli = new mysqli('host', 'username', 'password', 'database');
$mysqli->set_charset('utf8');
Dans l'en-tête de la page PHP, ajoutez un en-tête de réponse pour vous assurer que la page est codée comme UTF-8:
<span class="fun">en-tête ('contenu-type: text / html; charset = utf-8');</span>
L'exemple suivant montre comment interroger les champs de passe-temps dans une base de données et les afficher correctement:
<?php
header('Content-Type: text/html; charset=utf-8');
$mysqli = new mysqli('host', 'username', 'password', 'database');
$mysqli->set_charset('utf8');
$sql = "SELECT hobbies FROM users";
$result = $mysqli->query($sql);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo $row['hobbies'] . '<br>';
}
} else {
echo "0 results";
}
$mysqli->close();
?>
Grâce à la configuration ci-dessus, le problème brouillé dans les champs de passe-temps peut être évité efficacement et l'affichage normal des caractères spéciaux et des emojis peut être assuré. Selon les exigences du projet, la conception de la base de données et l'implémentation du code peuvent être encore optimisées.
La définition correcte de la base de données et de l'encodage de pages est la clé pour assurer l'affichage normal du contenu texte dans les projets PHP, en particulier les champs contenant des emojis et des caractères spéciaux. La méthode de cet article est concise et pratique, adaptée à la plupart des scénarios de développement, j'espère que cela vous sera utile.