En PHP, si vous utilisez des caractères chinois pour enregistrer dans la base de données, des caractères tronqués peuvent apparaître. En effet, l'encodage de la base de données et de la page Web est incohérent, ce qui entraîne un stockage incorrect des données. Voici quelques solutions.
Confirmez d'abord si l'encodage de la base de données est UTF-8 (ou un autre encodage prenant en charge le chinois). Sinon, vous pouvez définir le codage dans la base de données sur UTF-8.
Si vous utilisez une base de données MySQL, vous devez spécifier l'encodage lors de la création de la base de données et de la table de données :
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE tablename ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, age INT(3) ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Deuxièmement, définissez l'encodage sur UTF-8 dans le script PHP :
header('Content-Type: text/html; charset=utf-8');
peut également être configuré en PHP Définissez dans le fichier php.ini :
default_charset = "utf-8"
Lors de la connexion à la base de données, vous devez également définir l'encodage sur UTF-8. Si vous utilisez PDO pour vous connecter à la base de données, vous pouvez écrire comme ceci :
$dsn = "mysql:host=localhost;dbname=dbname;charset=utf8mb4"; $dbh = new PDO($dsn, $user, $password);
Si vous utilisez MySQLi pour vous connecter à la base de données, vous pouvez écrire comme ceci :
$mysqli = new mysqli("localhost", "user", "password", "dbname"); mysqli_set_charset($mysqli, "utf8mb4");
Si aucune des réponses ci-dessus Les méthodes peuvent résoudre le problème, il peut alors s'agir de la chaîne enregistrée dans la base de données. L'encodage est incohérent avec l'encodage de la base de données et nécessite une conversion d'encodage. La conversion peut être effectuée à l'aide de la fonction iconv de PHP ou de la fonction mb_convert_encoding.
$str = "你好"; $str = iconv('gbk', 'utf-8', $str); //或 $str = mb_convert_encoding($str, 'utf-8', 'gbk');
Résumé
Lorsque vous enregistrez des caractères chinois dans la base de données en PHP, assurez-vous que l'encodage de la base de données et de la page Web est cohérent et définissez l'encodage sur UTF-8 dans la base de données de connexion et le script PHP. Si des caractères tronqués apparaissent, essayez d'encoder la conversion. J'espère que ces méthodes pourront vous aider à résoudre le problème.
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!