On Mon, 5 May 2008 16:05:08 +0200, Simon Posnjak <[EMAIL PROTECTED]> wrote:
On Mon, May 5, 2008 at 3:48 PM, Jean-Paul Calderone <[EMAIL PROTECTED]> wrote:
On Mon, 5 May 2008 15:41:08 +0200, Simon Posnjak <[EMAIL PROTECTED]> wrote:

> Hi!
>
> I have a C module for which I created a wrapper with swig. The function
def is:
>
> C:
>
> int some_thing(unsigned char * the_str);
>
> eg:
>
> Python:
>
> some_module.some_thing (the_str)
>
> Now I would like to feed it with a UTF-8 formatted string:
>
> test = u'Make \u0633\u0644\u0627\u0645, not war.'
>

 `test´ is not a UTF-8 encoded string.  It's a unicode string.

 To get a UTF-8 encoded string from a unicode string, use the `encode´
 method:

   some_module.some_thing(test.encode('utf-8'))

Yes you are correct. It is unicode string. But still if I use encode I
get the same error:

TypeError with message: in method 'some_thing', argument 1 of type
'unsigned char *'

So I am looking for a way to "cast" unicode string to unsigned char *.


You need to provide some more information about `some_module.some_thing´.
How is it implemented?  What Python type does it expect?  If it doesn't
take a unicode string and it doesn't take a byte string, I don't know
what kind of string it does take.

Jean-Paul
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to