Re: Re: Sonderzeichen-Problem im ZMI / Page Template bei MySQL DB Abfrage
Sascha Gottfried <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Message-ID | <[email protected]> |
Hi Nico, folgendes zum Background: Mit ZMySQLDA 3.1.1 und aktiver unicode option für die Z MySQL Connection, holt eine ZSQL Methode, die Daten aus MySQL als Unicode-Objekt. Wenn du das Objekt in ein ZPT steckst, wird das in der Anzeige entsprechend der Einstellung für default-zpublisher-encoding (zope.conf) gerendert. Dein Code benötigt für eine korrekte Anzeige dann in der Regel keine Konvertierung. Auszug aus meiner zope.conf default-zpublisher-encoding utf-8 Bei deinem Ansatz mit MySQLdb ist entscheidend, wie du die die Verbindung zu MySQL-DB konfigurierst. Du musst der Verbindung sagen, dass die Daten in der DB in utf-8 kodiert. Die Unicode-Option für die ZMySQL Connection setzt dann wohl den Parameter 'use_unicode', so dass eine SQL-Abfrage (ob nun über mysqldb oder ZSQL-Methode ) Unicode-Objekte liefert. import MySQLdb __db = MySQLdb.connect(host=DB_HOST, user=DB_USER, passwd=DB_PASS, db=DB_NAME, charset = "utf8", use_unicode = True) Siehe http://www.harelmalka.com/?p=81 Falls du einen Python Unicode Experten in deiner Nähe hast, besuche ihn. Du musst verstehen, was encode(), decode(), unicode() und str() mit den Daten macht. Dann kannst du dir das gut skizzieren und den Weg der Daten aus der DB in das ZPT nachvollziehen. Mit einer älteren ZMySQLDA Version (2.0.8 o.ä) ist das etwas anders. Falls es nicht klappt, nenne Versionen und relevante Einstellungen und führe sie in deiner Antwort auf. Python, Zope/Plone, mysql-python, ZMySQLDA und Properties, default-zpublisher-encoding, evtl. Konvertierung in deinem Code nennen. Sascha _______________________________________________ zope mailing list [email protected] https://mail.dzug.org/mailman/listinfo/zope