Hi, I am trying to understand what does encode() do. What are the hex representations of "u" in main.py? Why there is UnicodeEncodeError when main.py is piped to xxd? Why there is no such error when it is not piped? Thanks.
~$ cat main.py #!/usr/bin/env python u = unichr(40960) + u'abcd' + unichr(1972) print u ~$ cat main_encode.py #!/usr/bin/env python u = unichr(40960) + u'abcd' + unichr(1972) print u.encode('utf-8') $ ./main.py ꀀabcd ~$ cat main.sh #!/usr/bin/env bash set -v ./main.py | xxd ./main_encode.py | xxd ~$ ./main.sh ./main.py | xxd Traceback (most recent call last): File "./main.py", line 4, in <module> print u UnicodeEncodeError: 'ascii' codec can't encode character u'\ua000' in position 0: ordinal not in range(128) ./main_encode.py | xxd 0000000: ea80 8061 6263 64de b40a ...abcd... -- Regards, Peng -- https://mail.python.org/mailman/listinfo/python-list