Lösung für von PHP in die Datenbank geschriebene verstümmelte chinesische Zeichen: 1. Erstellen Sie eine Datenbank und legen Sie die Kodierung „utf8_general_ci“ fest. 2. Verwenden Sie PHP, um die Datenbank zu lesen und zu schreiben, und legen Sie dann „mysql_query(“set name „utf8““ fest. ");".
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Wie löst man das chinesische verstümmelte Problem, wenn PHP in die Datenbank schreibt?
PHP schreibt in die Problem mit der chinesischen verstümmelten Datenbank
PHP-Seitenkonvertierung in UTF-8-Kodierungsproblem
1. Fügen Sie am Anfang des Codes eine Zeile hinzu:
header("Content-Type: text/html;charset=utf-8");
2. Klicken Sie auf das Menü des Editors: „Datei“. -> „Speichern unter“, um die aktuelle Dateikodierung anzuzeigen. Stellen Sie sicher, dass die Dateikodierung UTF-8 ist.
Wenn es sich um ANSI handelt, müssen Sie die Kodierung in UTF-8 ändern.
3. PHP-Datei-Header-Stücklistenproblem:
PHP-Dateien dürfen keine Stücklisten-Tags haben.
Andernfalls ist die Sitzung nicht verwendbar und es werden ähnliche Eingabeaufforderungen angezeigt:
Warnung: session_start() [function.session-start]: Kann nicht gesendet werden Session-Cache-Limiter – Header bereits gesendet
Dies liegt daran, dass bei der Ausführung von session_start() die gesamte Seite keine Ausgabe haben kann, aber da das BOM-Tag auf der vorherigen PHP-Seite vorhanden ist,
PHP betrachtet dieses BOM-Tag als Ausgabe, sodass etwas schief gelaufen ist !
Daher muss das BOM-Tag auf der PHP-Seite gelöscht werden
Methode zum Löschen dieses BOM-Tags:
1. Sie können die Datei mit Dreamweaver öffnen und erneut speichern, um das BOM-Tag zu entfernen!
2. Sie können die Datei mit EditPlus öffnen und im Menü „Einstellungen“ -> „Datei“ -> „UTF-8-Identität“ auf „Signaturen immer löschen“ einstellen.
Anschließend die Datei speichern. und Sie können das Stücklisten-Tag entfernen!
4. UTF-8-Codierungsproblem, wenn PHP Dateien als Anhänge speichert:
Wenn PHP Dateien als Anhänge speichert, muss der Dateiname GB2312-codiert sein.
Andernfalls wird der Dateiname verstümmelt, wenn Chinesisch im Dateinamen enthalten ist:
Wenn Ihr PHP selbst ist eine Datei im UTF-8-Kodierungsformat.
Sie müssen die Dateinamenvariable von UTF-8 in GB2312 konvertieren:
iconv("UTF-8", "GB2312", "$filename");
function utf8_substr($str,$len) { for($i=0;$i<$len;$i++) { $temp_str=substr($str,0,1); if(ord($temp_str) > 127){ $i++; if($i<$len){ $new_str[]=substr($str,0,3); $str=substr($str,3); } }else { $new_str[]=substr($str,0,1); $str=substr($str,1); } } return join($new_str); }
Stellen Sie beim Erstellen der Datenbank bitte „Organisation“ auf: „utf8_general_ci“ ein oder führen Sie die Anweisung aus:
CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Wenn das Feld Englisch oder Zahlen speichert, ist die Standardeinstellung in Ordnung.
Die entsprechende SQL-Anweisung, zum Beispiel:
CREATE TABLE `test` ( `id` INT NOT NULL , `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;
$connection = mysql_connect($host_name, $host_user, $host_pass);
mysql_query("set character set 'utf8'");//读库 mysql_query("set names 'utf8'");//写库 //其实读写都可以只加入 mysql_query("set names 'utf8'");
Schreiben Sie beim Schreiben der Datenbankverbindungsdatei:
$conn = mysql_connect("$host","$user","$password"); mysql_query("SET NAMES 'UTF8'"); mysql_select_db("$database",$conn);
Auf diese Weise ist alles normal, unabhängig davon, welche Chinesen in die Datenbank eingegeben oder auf der Seite angezeigt werden.
In der DW CS4-Version wird standardmäßig auch die utf8-Seite generiert.
Ähnlich, wenn Sie die Datenbankverbindungsdatei am Anfang schreiben: mysql_query("SET NAMES 'GBK'");
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
PHP Video Tutorial“
Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem, dass PHP verstümmelte chinesische Zeichen in die Datenbank schreibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!