Dear Dragos and everyone,
I have the problem narrowed down to the Apache/Zope connection. I've more or less decided I want to stick with ISO-8859-1 because moving everything to UTF-8 didn't really help me out. All in ISO-8859-1 works fine with Zope stand-alone, but unfortunately Apache needs to bridge it. As of right now, running it through the Apache bridge gives me the following:
HTTP/1.1 200 OK
Date: Fri, 16 Sep 2005 19:38:27 GMT
Server: Zope/(Zope 2.7.4-0, python 2.3.5, freebsd5) ZServer/1.1
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
whereas doing it through Zope gives me the following header:
HTTP/1.1 200 OK
Server: Zope/(Zope 2.7.4-0, python 2.3.5, freebsd5) ZServer/1.1
Date: Fri, 16 Sep 2005 19:32:33 GMT
Content-Length: 3941
Content-Type: text/html; charset=iso-8859-1
I'm a little bit confused as to why Apache changes the character-set and encoding. My Apache setup for the virual host is this:
<VirtualHost *:80>
ServerAdmin me@mysite.dk
ProxyPass / http://localhost:8080/
ProxyPassReverse /
http://localhost:8080/
DocumentRoot /home/mysite
ServerName www.mysite.dk
ServerAlias mysite.dk
ErrorLog /var/log/www.mysite.dk-error_log
CustomLog /var/log/www.mysite.dk-access_log common
## proxy_html_module conf
ProxyHTMLURLMap http://localhost:8080 http://www.mysite.dk
SetOutputFilter proxy-html
RequestHeader unset Accept-Enconding
AddDefaultCharset ISO-8859-1
CharsetDefault ISO-8859-1
</VirtualHost>
What am I missing that makes the encoding go UTF-8? Not that it matters, but the HTML also contains
<META HTTPD_EQUIV="Content-Type" CONTENT="text/html;charset=iso-8859-1" />
Thanks for all your help so far
Cheers
Nik
Hi
Here are some things you can do to handle your problem. For me, this
approach worked just fine.
1. Your HTML pages must have set the encoding to utf-8. Put this in the
HEAD tag of your html pages:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
2. For the Root folder add a property named 'management_page_charset' of
type 'string' with the value 'utf-8'. In this way the ZMI pages will be
displayed with utf-8 encoding.
3. Modify your HTML code like this:
<input name="test:utf8:ustring" />
If 'test' is also a property of some object, make sure it has 'ustring'
type.
After that the value will be displayed correctly in all pages.
Note: If your Zope runs over an Apache you must check also the Apache
settings (to serve pages utf-8 encoded)
Hope this will help.
Regards,
Dragos
Niklas Saers wrote:
> Hey guys,
> I've installed Zope on a FreeBSD server. My problem domain is very
> small: display a list of when people are unavailable, and let people
> update the list. This is all in Danish, and here are come my problems.
> Danish has three extra letters not in the ASCII alfabet, three
> upper-case and three lower-case. When getting the data from a <input
> name="test" /> where I've written "æ ø å Æ Ø Å", I get: æ ø Ã¥ Æ Ø Ã…
>
> What is the standard way of ensuring that I get the correct data?
>
> I tried writing a little converter, but the string
>
> tekst = tekst.replace("\xc3\xa6", "ae");
>
> gives me the error *UnicodeDecodeError: **'ascii' codec can't decode
> byte 0xc3 in position 0: ordinal not in range(128)*
>
> Do you have any suggestion on how to overcome these problems?
>
> Cheers
>
> Nik
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Zope maillist - Zope@zope.org
> http://mail.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://mail.zope.org/mailman/listinfo/zope-announce
> http://mail.zope.org/mailman/listinfo/zope-dev )