(PHP 5 >= 5.0.5, PHP 7, PHP 8)
mysqli::set_charset -- mysqli_set_charset — Définit le jeu de caractères du client
Style orienté objet
Style procédural
Définit le jeu de caractères à utiliser lors de l'envoi de données depuis et vers le serveur de base de données.
mysql
Seulement en style procédural : Un objet mysqli retourné par la fonction mysqli_connect() ou mysqli_init().
charset
Le jeu de caractères à définir.
Si le rapport d'erreurs mysqli est activé (MYSQLI_REPORT_ERROR
) et que l'opération demandée échoue, un avertissement est généré. Si, en plus, le mode est défini sur MYSQLI_REPORT_STRICT
, une mysqli_sql_exception est lancée à la place.
Exemple #1 Exemple avec mysqli::set_charset()
Style orienté objet
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
printf("Jeu de caractère initial : %s\n", $mysqli->character_set_name());
$mysqli->set_charset("utf8mb4");
printf("Jeu de caractères courant : %s\n", $mysqli->character_set_name());
?>
Style procédural
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'test');
printf("Jeu de caractère initial : %s\n", mysqli_character_set_name($link));
mysqli_set_charset($link, "utf8mb4");
printf("Jeu de caractères courant : %s\n", mysqli_character_set_name($link));
?>
Les exemples ci-dessus vont afficher quelque chose de similaire à :
Jeu de caractère initial : latin1 Jeu de caractères courant : utf8mb4
Note:
Pour utiliser cette fonction sur les systèmes Windows, vous devez utiliser la bibliothèque client MySQL version 4.1.11 ou suivante (pour MySQL 5.0, vous avez besoin de la version 5.0.6 ou suivante).
Note:
C'est la meilleure façon de modifier le jeu de caractères. Il n'est pas recommandé d'utiliser la fonction mysqli_query() pour le définir (comme avec la requête
SET NAMES utf8
). Voir la section Concepts des jeux de caractères MySQL pour plus d'informations.