Maison  >  Article  >  développement back-end  >  Résoudre le problème des caractères chinois tronqués dans php mysql

Résoudre le problème des caractères chinois tronqués dans php mysql

藏色散人
藏色散人original
2020-11-05 09:59:192078parcourir

Solution au code tronqué chinois php mysql : 1. Modifiez le format d'encodage dans la base de données ou la table ; 2. Ajoutez "mysqli_query("set names utf8");" à l'instruction PHP ; Ajoutez simplement "header('charset=utf-8');".

Résoudre le problème des caractères chinois tronqués dans php mysql

Recommandé : "Tutoriel vidéo PHP"

Problème de chinois tronqué en PHP et Mysql

Lors de la création d'une base de données avec MySQL, il y aura parfois des problèmes de code tronqué. Voici quelques solutions.

Problème 1 : Le format d'encodage dans la base de données ou la table est incorrect.

Lors de la création de la base de données, utilisez le code suivant pour la créer :

CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';

Lors de la création de la table :

CREATE TABLE `table_name` (
id varchar(40) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Une fois ces trois paramètres définis, Mysql n'aura fondamentalement aucun problème, c'est-à-dire que le même format d'encodage sera utilisé lors de la création de bases de données et de tables.

Si la base de données a été créée, vous pouvez utiliser la méthode suivante :

1. Afficher le format d'encodage par défaut :

mysql> show variables like "%char%";  
+--------------------------+---------------+  
| Variable_name | Value |  
+--------------------------+---------------+  
| character_set_client | gbk |  
 character_set_connection | gbk |  
| character_set_database | utf8 |  
 character_set_filesystem | binary |  
| character_set_results | gbk |  
| character_set_server | utf8 |  
| character_set_system | utf8 |  
+--------------------------+-------------+

Remarque : Pour déterminer les 2 précédents, vous vous pouvez utiliser les noms définis utf8, définir les noms gbk définit le format d'encodage par défaut, vous pouvez définir l'encodage de la base de données plus simplement via Workbench.

L'effet de l'exécution de SET NAMES utf8 équivaut à définir ce qui suit en même temps :

SET character_set_client='utf8';  
SET character_set_connection='utf8';  
SET character_set_results='utf8';

2 Vérifiez le format d'encodage de la base de données de test :

mysql> show create database test;  
+------------+------------------------------------------------------------------------------------------------+  
| Database | Create Database |  
+------------+------------------------------------------------------------------------------------------------+  
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |  
+------------+------------------------------------------------------------------------------------------------+

3. . Vérifiez l'encodage de la table de données yjdb Format :

mysql> show create table yjdb;  
| yjdb | CREATE TABLE `yjdb` (  
`sn` int(5) NOT NULL AUTO_INCREMENT,  
`type` varchar(10) NOT NULL,  
brc` varchar(6) NOT NULL,  
`teller` int(6) NOT NULL,  
`telname` varchar(10) NOT NULL,  
`date` int(10) NOT NULL,  
`count` int(6) NOT NULL,  
`back` int(10) NOT NULL,  
PRIMARY KEY (`sn`),  
UNIQUE KEY `sn` (`sn`),  
NIQUE KEY `sn_2` (`sn`)  
) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |

Problème 2 : l'encodage de transfert PHP et Mysql sont incompatibles

Nécessité d'ajouter

mysqli_query(“set names utf8”);

les noms d'ensemble mysql au PHP. déclaration pour résoudre la cause des caractères tronqués :

http://blog.csdn.net/zsmj_2011/article/details/7943734

Question 3 : Problème de décodage du client :

Ajouter un en-tête('charset=utf-8');

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