Re: Plone & ZMI -Properties: Unicode, UTF-8, Encoding-Wirrwarr
Andreas Gabriel <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Organization | Hochschulrechenzentrum Philipps-Universitaet Marburg |
| Message-ID | <[email protected]> |
Andreas Jung schrieb:
> Nunja, was ist der Usecase Plone Metadaten über das ZMI zu pflegen?
Im alten Zope gab es ja keine Adapter. Und damals war es einfacher
simple Erweiterungen, ohne neue Objekt-Typen zu erzeugen, im ZMI
anzulegen.
> Das ZMI und Plone nicht unbedingt kompatibel sind ist bekannt.
Ähnliche Effekte hat man auch ohne Plone, da definitv ZMI's properties.dtml
Unfug treibt. Außerdem benutzt Plone selbst die Properties,
wenn z.B. ein vom Default abweichendes Layout für ein Objekt benutzt wird.
> Das ist ja auch korrekt. Beim Zugriff über die Accessormethoden erfolgt
> die Konvertierung ins Ausgabe-Encoding (utf-8).
>
>> Im ZMI steht aber der angebliche
>> Objekttyp "string", d.h. beim Abspeichern der Properties im ZMI wird aus
>> dem Unicode-Objekt ein String-Objekt. Das ist schon mal ziemlich unschön.
>>
> Warum ZMI?
Was soll die Frage bedeuten? Ich meine damit nur, dass
ursprünglich korrekterweise Unicode für "title" verwendet
wird
>>> app.myplone.myfolder.title
u'Universit\xe4t'
>>> type(app.myplone.myfolder.title)
<type 'unicode'>
und nach dem Abspeichern im ZMI ein utf-8 kodierter
String für "title"
>>> app.myplone.myfolder.title
'Universit\xc3\xa4t'
>>> type(app.myplone.myfolder.title)
<type 'str'>
Das Wechseln des Objekttyps sollte doch lieber vermieden werden.
Soweit ich erkennen kann, ist es nicht richtig, dass Archetypes
die Variable _properties aus der PropertyManager-Klasse erbt,
wenn Archetypes "title" als unicode abspeichert
vgl. OFS/PropertyManager.py:
_properties=({'id':'title', 'type': 'string', 'mode':'wd'},)
Archetypes müsste als type "ustring" verwenden
_properties=({'id':'title', 'type': 'ustring', 'mode':'wd'},)
In ZMI's properties.dtml müsste dann für das korrekte Abspeichern
<input name="title:UTF-8:unicode" ...
stehen, wenn man title als Unicode-Objekt erhalten möchte.
Wo ist eigentlich Dokumentiert, dass sich das Coding-Verhalten bei DTML
ändert, je nachdem ob man zuerst Unicode oder String ausgibt?
Bei properties.dtml wird z.B. bei management_page_charset == "UTF-8"
Unicode erzwungen
<dtml-var "u' '">
Deaktiviert man die Zeile, gibt es wieder andere schöne Effekte.
Danke & Gruß
Andreas
--
Dr. Andreas Gabriel, Hochschulrechenzentrum, http://www.uni-marburg.de/hrz
Hans-Meerwein-Str., 35032 Marburg, fon +49 (0)6421 28-23560 fax 28-26994
-------------------- Philipps-Universitaet Marburg -----------------------
_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope