I have a command line program written in Python, and when I pipe it through another program on the command line, sys.stdout.encoding
is None
. This makes sense, I suppose -- the output could be another program, or a file you're redirecting it into, or whatever, and it doesn't know what encoding is desired. But neither do I! This program will be used by many different people (humor me) in different ways. Should I play it safe and output only ascii (replacing non-ascii chars with question marks)? Or should I output UTF-8, since it's so widespread these days?
相关问题
- how to define constructor for Python's new Nam
- streaming md5sum of contents of a large remote tar
- How to get the background from multiple images by
- How to get the return code of a shell script in lu
- Evil ctypes hack in python
You should output UTF-8 because thats what everyone should be using. It's a bug not to be.
;)
You should use the value returned by
locale.getpreferredencoding()
.if your application doesn't really deal with a whole lot of internationalisation,
ascii
should suffice. but if not, i'd sayutf-8
or better stillutf-16
should be the order of the day.I suggest you use the current locale.
The system knows what it should be, and the other side, if it also uses the current locale, will do the right thing.