[Zope-CMF] Charsets
Charlie Clark
charlie at begeistert.org
Mon Jan 19 03:36:23 EST 2009
Am 18.01.2009 um 23:00 schrieb yuppie:
> Hi Charlie!
Hiya Yuppie,
> Charlie Clark wrote:
>> Am 29.12.2008 um 15:01 schrieb Charlie Clark:
>>
>> CMFDefault.utils
>>
>> def getBrowserCharset(request):
>> """ Get charset preferred by the browser.
>> """
>> envadapter = IUserPreferredCharsets(request)
>> charsets = envadapter.getPreferredCharsets() or ['utf-8']
>> return charsets[0]
>>
>> This will always be iso-8859-1 for Opera and Firefox because all
>> charsets have the same quality, again even if UTF-8 encoding is
>> specified.
>
> getBrowserCharset does almost the same as
> zope.publisher.http.getCharsetUsingRequest. And it is only used for
> encoding and decoding 'portal_status_message'. It is not relevant for
> the issue you noticed.
Okay.
>> I haven't been able to track where the decoding of form
>> data occurs for Zope 2 stuff but I can identify the problem in
>> zpublisher.browser.BrowserRequest
>
> You mean zope.publisher.browser.BrowserRequest. The Zope 2 version
> is in
> Products.Five.browser.decode.
Thanks - I thought it must have been in Five but didn't know where to
look.
> AFAICS the fallback to other charsets is usually not required in
> Zope 3.
> If the publisher encodes responses using
> zope.publisher.http.getCharsetUsingRequest, the first charset will be
> the right one.
That seems reasonable.
>> I would suggest that we work towards enforcing UTF-8 in where
>> possible
>> but at the very least add the accept-charset attribute to forms and
>> use the portal's default_charset for this.
>>
>> I'd very much appreciate your comments on this.
>
> I can't see a need to implement this in a different way than Zope 3.
> So
> I propose to fix the encoding of forms sent to the browser.
I agree that there shouldn't be implemented in a different way than
for Zope 3. And if we can solve the problems by fixing form encoding
I'm happy. Although I'd like to see UTF-8 always the first charset
returned if * the quality is the same.
One thing that did strike me when working on this is quite how often
getPreferredCharsets() is called on single request.
Charlie
--
Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226
More information about the Zope-CMF
mailing list