[Grok-dev] Re: Understanding unicode

Philipp von Weitershausen philipp at weitershausen.de
Fri Aug 31 17:04:23 EDT 2007


Brandon Craig Rhodes wrote:
> Jan Ulrich Hasecke <janulrich.hasecke at web.de> writes:
> 
>> zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/Users/
>> juh/GrokZoo/parts/app/site.zcml", line 4.0-4.29
>>     ZopeXMLConfigurationError: File "/Users/juh/GrokZoo/src/grokzoo/
>> configure.zcml", line 4.2-4.27
>>     UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4'
>> in position 7: ordinal not in range(128)
> 
> In the mailing list archives from last week, I think, is my complaint
> about getting a similar message when attempting to add Unicode
> characters to a Tutorial that I am writing.
> 
> The only solution I have found at the moment - which, I have to warn
> you, is agreed by everyone to be a quite terrible solution that might
> break everything on your system, but which worked fine for me - is to
> edit your Python site.py file, which on my system lives at:
> 
>    /usr/lib/python2.4/site.py
> 
> and on your site probably lives somewhere else (judging from your
> traceback), and replace the line:
> 
>     encoding = "ascii" # Default value set by _PyUnicode_Init()
> 
> in the "setencoding()" function (it's the 357th line in my copy) with
> the much more ambitious line:
> 
>     encoding = "utf8"

Nooooooooooo. This isn't a solution. Nor is using 
sys.setdefaultencoding(). Trust me, if your software depends on such 
hacks, you'll have a hard time deploying, distributing and maintaining it.

A Unicode{De|En}codeError is always a sign of a bug in the application. 
Covering it up with a dirty hack is like plastering over body damage 
before selling a car...


-- 
http://worldcookery.com -- Professional Zope documentation and training


More information about the Grok-dev mailing list