Lorsque vous utilisez asp pour lire la base de données MYSQL, des caractères tronqués apparaissent. Tous les caractères chinois sont-ils lus ? ? ? ? Ce problème est dû au fait
Le jeu de caractères de la base de données, le jeu de caractères de la table et le jeu de caractères du champ sont tous définis sur : gbk_chinese_ci
Faites attention à Stmt=Set Names 'GBK' dans la chaîne de connexion à la base de données. Cette phrase doit être incluse.
Ce qui suit est le code du lien asp vers mysql. Veuillez noter qu'il y a un GBK à l'arrière. Ceci spécifie le type d'encodage du lien. Basé sur les données que vous utilisez
Type d'encodage de bibliothèque. Modifiez-le selon le vôtre.
ConnectionString = Pilote = {MySQL ODBC 3.51
Pilote}; Serveur = mon serveur; Base de données = mysql; Utilisateur = mon utilisateur; mot de passe = mon mot de passe; Option = 3; Stmt = Définir
Noms 'GBK'
Si vous utilisez une version supérieure de MySQL, cette situation se produit souvent. Les caractères chinois sont souvent tronqués ;
Méthode de référence :
Définissez la police de MySQL.
Ajouter mysql.ini
[mysql]
jeu de caractères par défaut = gb2312
[client]
jeu de caractères par défaut = gb2312
[mysqld]
default-character-set=gb2312 //ou gbk
Une fois l'enregistrement modifié, la base de données avant la modification n'a aucun effet. Le contenu des fichiers db.opt dans ces répertoires de base de données est modifié en.
jeu de caractères par défaut = gb2312
collation par défaut = gb2312_chinese_ci
Vous pouvez aussi faire ceci
dim nom du pilote, chs
driverName=Pilote={mysql odbc 3.51
pilote};server=localhost;database=test;uid=loaer;pwd=123456;
définir conn=server.createobject(adodb.connection)
conn.open nom du pilote
'Exécutez la phrase suivante avant d'interroger
set chs=conn.Execute(SET NAMES 'gb2312')
'Table de base de données de requête
sql = SELECT * FROM tb_commondata
Définir rs = conn.Execute(sql)
De cette façon, il n'y aura pas de caractères tronqués