I wrote jrpg as a Python 2 game that uses Unicode a lot everywhere, and I really hated Python 2's extremely shitty Unicode support. The following program:
#!/usr/bin/python
# -*- coding: utf-8 -*-
print u"Hello, 東京"
Printed everything fine if you ran it on a terminal - but instantly crashed with retarded UnicodeEncodeError: 'ascii' codec can't encode characters in position 7-8: ordinal not in range(128) exception if you tried to pipe its output into any file or command.
I'm happy to say that Python 3 no longer suffers from this problem. The following program works fine in all contexts, and no longer even needs the silly annotations.
#!/usr/bin/python3
print("Hello, 東京")
If only all other problems fixed themselves while I wasn't looking...
#!/usr/bin/python
ReplyDeleteis buggy and should be
#!/usr/bin/env python2
same thing with
#!/usr/bin/python3
and
#!/usr/bin/env python3
Remember, on modern UNIX, python is usually in /usr/local/bin/ not /usr/bin
Anonymous: On OSX it's all over the place because OSX package management in a sticking pile of shit, on Linux it's definitely in /usr/bin/
ReplyDelete