PHP/MySQL-encoding-Probleme. � statt bestimmter Zeichen

Ich bin gekommen, über einige Probleme bei der Eingabe von bestimmten Zeichen, die in meine mysql-Datenbank mit php. Was ich mache, ist die Einreichung Benutzer eingegebenen text in eine Datenbank. Ich kann nicht herausfinden, was ich ändern muss, damit jede Art von Zeichen in die Datenbank und bedruckt wieder heraus über php, wie es wohl.

Meiner MySQL-collation: latin1_swedish_ci

Kurz bevor ich Sie senden Sie den text an die Datenbank aus meinem Formular verwende ich mysql_real_escape_string() auf die Daten.

Beispiel unten

diesem text:

�People are just as happy as they make up their minds to be.�
� Abraham Lincoln 

ist wohl so Aussehen:

People are just as happy as they make up their minds to be.”
 Abraham Lincoln
  • Warum sind Sie nicht mit einem UTF-8 collation?
  • Latin1 ist nicht UTF-8. So ist es keine überraschung, dass Zeichen, die nicht unter latin1 wie und sind Mojibake würde.
  • latin1 ist denke ich mal der Standard und ich habe nie, und weiß noch nicht wirklich verstehen, die Sortierungen sind die besten zu verwenden, so habe ich immer diese verwendet. Ich habe versucht, UTF-8 collation vor, aber es schien nicht das problem zu beheben
  • Das ist, weil es nicht die ganze Lösung. Das gesamte Programm von der Spitze bis zum Heck muss UTF-8 verwenden.
  • Beachten Sie, dass die Tabelle Sortierung ist nicht das gleiche wie in Tabelle charset. Die Sortierung lediglich definies die Reihenfolge (in der Regel locale-abhängig, wie die Schwedische, als haben Sie zunächst auch) von den Charakteren. Also selbst wenn Sie versuchen, verwenden Sie die Tabelle Sortierung für UTF-8, es wird nicht akzeptiert UTF-8-Zeichen, wenn Sie nicht eine Tabelle charset von UTF-8.
  • Gut, wie würde ich meine ganze Website auf utf-8? So weit ich bin mir bewusst, ich habe nicht definiert, jede Sorte, außer meinem meta ist: <meta http-equiv="Content-Type" Content="text/html; charset=utf-8" />
  • Lesen Sie die PHP - /MySQL-Handbuch Hinweise. Das HTML-meta-tag ist übrigens nur verwendet, wenn der Anwender speichert die Webseite auf der lokalen Festplatte die Datei-system und dann öffnet es von dort durch file:// URL. Es ist nicht genutzt, wenn die Seite über serviert http://. Stattdessen werden die echten HTTP-header der Antwort ist gehört worden. Siehe auch HTML-Spezifikation Kapitel 5.2.2.
  • Ich habe mir die Anleitung mit etwas Glück zu finden, was ich brauche.
  • Musste nachschlagen mojibake auf wikipedia - die hatte eine erstaunliche, erstaunliche Geschichte in Verbindung mit dem Artikel - en.wikipedia.org/wiki/... - als Programmierer, man sollte alle Lesen, und erfahren Sie, warum unicode ist wichtig 🙂
  • vielen Dank für das teilen dieser Begriff!
  • Würde die änderung der Tabelle die Sortierung Durcheinander etwas in den Spalten? Ich merke es nicht geht, um wieder die ursprünglichen Zeichen, aber ich möchte es nicht versauen anderen Zeichen als gut.

InformationsquelleAutor Dylan Cross | 2012-10-20
Schreibe einen Kommentar