Heim > Artikel > Backend-Entwicklung > Lösen Sie das Problem verstümmelter chinesischer Zeichen in PHP und MySQL
Lösung für verstümmelten PHP-MySQL-Code: 1. Ändern Sie das Codierungsformat in der Datenbank oder Tabelle. 2. Fügen Sie „mysqli_query(“set name utf8“);“ zur PHP-Anweisung hinzu client 'charset=utf-8');" Das ist es.
Empfohlen: „PHP-Video-Tutorial“
Probleme mit chinesischem verstümmeltem Code in PHP und MySQL
Beim Erstellen einer Datenbank mit MySQL treten manchmal Probleme mit verstümmeltem Code auf. Hier sind einige Lösungen.
Problem 1: Das Codierungsformat in der Datenbank oder Tabelle ist falsch
Verwenden Sie beim Erstellen der Datenbank den folgenden Code, um sie zu erstellen:
CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
Beim Erstellen der Tabelle:
CREATE TABLE `table_name` ( id varchar(40) NOT NULL PRIMARY KEY AUTO_INCREMENT, `UserID` varchar(40) NOT NULL default '', ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Nach dem Festlegen dieser 3 funktioniert MySQL grundsätzlich nicht Bei der Arbeit tritt ein Problem auf, das heißt, beim Erstellen der Datenbank und der Tabelle wird dasselbe Codierungsformat verwendet.
Wenn Sie eine Datenbank erstellt haben, können Sie die folgenden Methoden verwenden:
1. Überprüfen Sie das Standardcodierungsformat:
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 | +--------------------------+-------------+
Hinweis: Um die vorherigen 2 zu ermitteln, können Sie die Namen utf8 festlegen und die Namen gbk festlegen Standardkodierungsformat; über die Workbench ist es einfacher, die Kodierung der Datenbank festzulegen.
Die Auswirkung der Ausführung von SET NAMES utf8 entspricht der gleichzeitigen Einstellung von:
SET character_set_client='utf8'; SET character_set_connection='utf8'; SET character_set_results='utf8';
2. Überprüfen Sie das Codierungsformat der Testdatenbank:
mysql> show create database test; +------------+------------------------------------------------------------------------------------------------+ | Database | Create Database | +------------+------------------------------------------------------------------------------------------------+ | test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ | +------------+------------------------------------------------------------------------------------------------+
3
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 |Frage 2: PHP- und MySQL-Übertragung Die Codierung ist inkompatibelSie müssen
mysqli_query(“set names utf8”);MySQL-Set-Namen zur PHP-Anweisung hinzufügen, um die Ursache für verstümmelte Zeichen zu beheben:
http://blog.csdn.net/zsmj_2011/article/details/7943734Problem 3: Client-Dekodierungsproblem:Hinzufügen header('charset=utf-8'); das ist es
Das obige ist der detaillierte Inhalt vonLösen Sie das Problem verstümmelter chinesischer Zeichen in PHP und MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!