Heim > Datenbank > MySQL-Tutorial > Warum werden meine persischen Zeichen in alten und neuen Website-Skripten unterschiedlich angezeigt?

Warum werden meine persischen Zeichen in alten und neuen Website-Skripten unterschiedlich angezeigt?

Susan Sarandon
Freigeben: 2024-12-26 11:46:10
Original
242 Leute haben es durchsucht

Why Do My Persian Characters Display Differently Between Old and New Website Scripts?

Seltsame Zeichenkodierungsdiskrepanz bei der Datenspeicherung und -abfrage

Bei dem Versuch, eine alte Website neu zu schreiben, die persische Zeichen verwendet, sind Sie damit konfrontiert eine merkwürdige Diskrepanz zwischen der Art und Weise, wie Daten gespeichert und abgerufen werden. Das alte Skript zeigt persische Zeichen korrekt an, während das neue sie mit derselben Codierung wie die Datenbank anzeigt, die verzerrt erscheint.

Um dieses Problem zu verstehen, ist es wichtig zu beachten:

  • Das alte Skript basiert auf der TUBADBENGINE, die einen eigenen Mechanismus zur Zeichenkodierung verwendet.
  • Das neue Skript verwendet CodeIgniter, der dies übernimmt Zeichenkodierung unterschiedlich.
  • Die Datenbank ist mit einem UTF-8-Zeichensatz und der Sortierung utf8_persian_ci konfiguriert.

Wenn Sie persische Zeichen mit der alten Schrift eingeben, erscheinen diese als seltsame Sequenzen wie عمران in der Datenbank. Das alte Skript ruft sie jedoch ab und zeigt sie korrekt an. Dies deutet darauf hin, dass TUBADBENGINE ein separates Kodierungsschema verwendet, möglicherweise basierend auf ISO-8859-1, das vom neuen Skript nicht erkannt wird.

Umgekehrt werden persische Zeichen gespeichert, wenn Sie sie direkt in die Datenbank einfügen wie erwartet und vom neuen Skript korrekt abgerufen. Allerdings zeigt das alte Skript sie jetzt als Fragezeichen (????) an. Dies liegt daran, dass der Zeichendekodierungsmechanismus des alten Skripts eine andere Kodierung erwartet als die, die von der Datenbank für direkte Einfügungen verwendet wird.

Die Lösung besteht darin, die vorhandenen Daten in der Datenbank von der von TUBADBENGINE verwendeten Kodierung in UTF zu konvertieren -8-Kodierung von CodeIgniter erwartet. Um dies zu erreichen:

  1. Passen Sie die Datenbankverbindung an, um sicherzustellen, dass sie UTF-8-Kodierung verwendet.
  2. Konvertieren Sie die Daten in den betroffenen Spalten mit der Funktion CONVERT. Zum Beispiel:
UPDATE tnewsgroups SET fName = CONVERT(INARY CONVERT(fName USING latin1) USING utf8);
Nach dem Login kopieren

Sobald die Daten konvertiert sind, sollten sowohl das neue als auch das alte Skript persische Zeichen korrekt anzeigen.

Das obige ist der detaillierte Inhalt vonWarum werden meine persischen Zeichen in alten und neuen Website-Skripten unterschiedlich angezeigt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage