import sys
ret = sys.getdefaultencoding()
if ret == 'ascii'
    modify /python/site.py setencoding function
    set encoding = "utf-8"


On 10月1日, 下午9时09分, Klaas van Schelven <klaasvanschel...@gmail.com>
wrote:
> Hi all,
>
> I just ran into the same problem. Locally it doesn't occur, but it
> does on the server.
>
> I share Karen's analysis that the variable path of type unicode cannot
> be encoded into ascii.
> However, sys.getfilesystemencoding is also "UTF-8", so I don't see 
> whyos.statwould try to encode using ascii anyway.
>
> Klaas
>
> >  File "/usr/languages/python/2.6/lib/python2.6/genericpath.py", line 18, in
> > exists
> >    st =os.stat(path)
>
> >UnicodeEncodeError: 'ascii' codec can't encode character u'\xe7' in position
> > 53: ordinal not in range(128)
>
> > "path" here includes the file name, no file data is involved. Django is
> > passing a unicode string "path" to theos.stat() function. On many operating
> > systems, Python must actually pass a bytestring, not unicode, to the
> > underlying OS routine that implements "stat".  Therefore Python must convert
> > the unicode string to a bytestring using some encoding. The encoding it uses
> > is whatever is returned by 
> > os.getfilesystemencoding:http://docs.python.org/library/sys.html#sys.getfilesystemencoding.
> >  As noted
> > in that documentation, on Unix the encoding will be:
>
> > ... the user's preference according to the result of nl_langinfo(CODESET),
> > or None if the nl_langinfo(CODESET) failed.
>
> > That's a pretty obscure description but it boils down to the encoding
> > associated with the currently set locale. (And on some systems successfully
> > setting a locale with an encoding like utf-8 requires installing some
> > "extra" language packs.) So the key to fixing this problem is to ensure the
> > locale of the running server is successfully set to one with an encoding
> > such as utf-8, which supports (can encode) the full range of unicode values.
> > Unfortunately details on setting locales differs from machine to machine so
> > it is hard to give specific instructions here.
>
> > Karen
> > --http://tracey.org/kmt/

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to