2011-01-07 9 views
0

Ich habe ein Problem mit dem Speichern des £ -Symbols in einer MySQL-Datenbank.PHP mysql flex Unicode

  1. Ich bin eine flexible Frontend, mit einem PHP + MySQL-Backend läuft

  2. Wenn ich einen Datensatz aus flex speichern, wird die Zeichenfolge an den Server gesendet als „Dieser Betrag £ 10“

  3. php betrachtet den String wie oben, und wenn er in der DB gespeichert wird, wird er als "Dieser Betrag ist £ 10" gespeichert. Mein Verständnis ist, dass dies korrekt ist basierend auf MySQL or PHP is appending a  whenever the £ is used

  4. Ich jetzt den obigen Datensatz abrufen, und es wird gesendet, um als "Dieser Betrag ist £ 10" flex. Flex zeigt dies in einem Textfeld als "Dieser Betrag ist £ 10" an.

  5. Ich ändere ein anderes Feld im selben Datensatz in Flex und speichern Sie die Transaktion erneut. Die Zeichenfolge wird nun an den Server gesendet, wie "Dieser Betrag ist £ 10"

  6. Der Datensatz wird jetzt in der DB als "Der Betrag ist £ 10" gespeichert. Jedes Mal, wenn der Datensatz erneut gespeichert wird, blitzt dieser Effekt auf.

Vielen Dank für einen Rat, den Sie geben können.

+1

Am Ende des Tages bei ghalex.com/blog/as3flexdb-and-utf8 entdeckt, das schien ein Problem zu sein AMFPHP , wie unter http://ghalex.com/blog/as3flexdb-and-utf8 gefunden – JonoB

Antwort

0

Am Ende des Tages, das schien ein AMFPHP Problem zu sein, da

0

Verwenden Sie den Unicode £ als Ersatz für das £ -Zeichen, bevor Sie in MySQL einfügen.

Überprüfen Sie Ihre Datenbank Zeichensatz? Das könnte das Problem sein.

+0

Die Datenbanksortierung ist auf utf8_general_ci eingestellt – JonoB

0

Klingt für mich als ein Zeichensatzproblem. Ich habe Flex nicht benutzt, ich benutze Dojo-Formulare mit Zend Framework und Doctrine 2, die alles im UTF-8-Format verarbeiten.

versuchen, alles zu UTF-8-Einstellung:

  1. mysql_set_charset ('UTF-8', $ conn);
  2. in der Kopfzeile hinzufügen: < meta http-equiv = "Content-Type" content = "text/html; charset = utf-8"/>

Ich habe ähnliche Probleme gehabt, wenn die Form ISO-8859-1, können Sie auch versuchen, die PHP-Funktion: utf8_encode() beim Abrufen der Werte aus dem Formular. Manchmal habe ich es schwer gefunden, die ISO-8859-1-Quelle zu finden, und dann versuche ich normalerweise mit den Dekodier-/Kodierfunktionen zu debuggen.