On 12/10/2010 15:45, Hidura wrote:
Don't work this is the error what give me TypeError: sequence item 0:
expected bytes, str found, i continue trying to figure out how resolve
it if you have another idea please tellme, but thanks anyway!!!

On Mon, Oct 11, 2010 at 4:27 AM, Almar Klein <almar.kl...@gmail.com
<mailto:almar.kl...@gmail.com>> wrote:


    On 10 October 2010 23:01, Hidura <hid...@gmail.com
    <mailto:hid...@gmail.com>> wrote:

        I try to encode a binary file what was upload to a server and is
        extract from the wsgi.input of the environ and comes as an unicode
        string.


    Firstly, UTF-8 is not meant to encode arbitrary binary data. But I
    guess you could have a Unicode string in which the character index
    represents a byte number. (But it's ugly!)

    So if you can, you could make sure to send the file as just bytes,
    or if it must be a string, base64 encoded. If this is not possible
    you can try the code below to obtain the bytes, not a very fast
    solution, but it should work (Python 3):


    MAP = {}
    for i in range(256):
         MAP[tmp] = eval("'\\u%04i'" % i)
>
>     # Let's say 'a' is your string
>     b''.join([MAP[c] for c in a])
>

I don't know what you're trying to do here.

1. 'tmp' is the same for every iteration of the 'for' loop.

2. A Unicode escape sequence expects 4 hexadecimal digits; the 'i'
format gives a decimal number.

3. Using 'eval' to make a string this way is the long (and wrong) way
to do it; chr(i) would have the same effect.

4. The result of the eval is a string, but you're performing a join
with a bytestring, hence the exception.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to