Heim >Backend-Entwicklung >PHP-Tutorial >Warum zeigt mein neues CodeIgniter-Skript beschädigte persische Zeichen an, das alte Skript jedoch nicht?
Seltsame Zeichenkodierung in der Datenbank: Alte Skript-Dekodierung, neues Skript schlägt fehl
Problemstellung:
Bei der Migration einer Website von einem älteren Skript zu einem neuen CodeIgniter-basierten Skript treten Probleme mit der Zeichenkodierung auf. Das alte Skript kann in der Datenbank gespeicherte persische Zeichen anzeigen, während das neue Skript beschädigten Text anzeigt.
Analyse:
Die Datenbanktabellen und -spalten sind mit einer Sortierung konfiguriert von utf8_persian_ci. Das neue Skript verwendet auch UTF-8 als Zeichensatz und Sortierung. Das Problem ergibt sich aus der Art und Weise, wie Zeichen ursprünglich in der Datenbank gespeichert wurden, wenn die alte TubaDBEngine verwendet wurde.
Altes Skriptverhalten:
Wenn persische Zeichen in die eingefügt wurden Datenbank mithilfe von TubaDBEngine erstellt wurden, wurden sie nicht in UTF-8, sondern in einer anderen Kodierung gespeichert, was zur Anzeige von Zeichen wie z. B. führte „عمران“ in der Datenbank. Das alte Skript konnte diese Zeichen jedoch korrekt dekodieren und anzeigen.
Neues Skriptproblem:
Das neue Skript ist zwar korrekt für UTF-8 konfiguriert, kann dies jedoch nicht Dekodieren Sie die Zeichen, die ursprünglich in der Datenbank gespeichert waren, mithilfe der Codierung von TubaDBEngine. Infolgedessen zeigt das neue Skript beim Abrufen von Daten beschädigten Text an.
Lösung:
SELECT CONVERT(BINARY CONVERT(fName USING latin1) USING utf8) FROM tnewsgroups
UPDATE tnewsgroups SET fName = CONVERT(BINARY CONVERT(fName USING latin1) USING utf8)
Nach der Datenkonvertierung sollte das neue Skript in der Lage sein, die persischen Zeichen korrekt abzurufen und anzuzeigen.
Das obige ist der detaillierte Inhalt vonWarum zeigt mein neues CodeIgniter-Skript beschädigte persische Zeichen an, das alte Skript jedoch nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!