On Tue, 2006-10-03 at 22:26 -0700, Beau Hartshorne wrote:
> On 3-Oct-06, at 7:36 PM, Malcolm Tredinnick wrote:
> 
> > So this is the value that the string has right at the moment the
> > exception occurs? Can you paste the traceback you see, please (and
> > preferably the value of 'sql' and 'params' at that point as well).
> >
> > I'm a bit in the dark about what is happening right now, since
> > subsituting a UTF-8 string into a Python string should work easily.
> >
> >>>> s = unicode('Djang\xc3\xa9', 'utf-8')
> >>>> print "update foo set blah = '%s'" % s
> >         update foo set blah = 'Djangé'
> >
> > is an example of what should be happening. I suspect there is  
> > something
> > else important about what you are doing. Not accusing you of
> > deliberately misleading or anything -- I have no idea what the  
> > important
> > thing is yet, either.
> 
> Actually, this is what I get:
> 
>  >>> import sys
>  >>> print sys.version
> 2.4.3 (#1, Mar 30 2006, 11:02:16)
> [GCC 4.0.1 (Apple Computer, Inc. build 5250)]
> 
>  >>> s = unicode('Djang\xc3\xa9', 'utf-8')
>  >>> print "update foo set blah = '%s'" % s
> Traceback (most recent call last):
>    File "<stdin>", line 1, in ?
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in  
> position 28: ordinal not in range(128)
> 
> But, if I do this:
> 
>  >>> s = 'Djang\xc3\xa9'
>  >>> print "update foo set blah = '%s'" % s
> update foo set blah = 'Djangé'
> 
> I haven't played with the default encoding at all.

Oh sod :-( It's also an environment locale thing. My system typically
runs in en_AU.UTF-8 (so UTF-8 by default). If I run in the "C" or "en"
locales, I get the same thing.

So, yeah, it looks like you have to run s.encode('utf-8') on your
strings before trying to work with them in that case.

Regards,
Malcolm



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users
-~----------~----~----~----~------~----~------~--~---

Reply via email to