python - 如果命令行程序不确定 stdout 的编码,它应该输出什么编码?

标签 python linux shell command-line unicode

我有一个用 Python 编写的命令行程序,当我通过命令行上的另一个程序将其通过管道传输时,sys.stdout.encodingNone。我想这是有道理的——输出可能是另一个程序,或者您将其重定向到的文件,或者其他任何东西,并且它不知道需要什么编码。但我也不会!这个程序将被许多不同的人(幽默的我)以不同的方式使用。我应该谨慎行事并只输出 ascii(用问号替换非 ascii 字符)吗?还是我应该输出 UTF-8,因为它现在非常普遍?

最佳答案

我建议您使用当前的语言环境。

Python2> import locale
Python2> locale.getpreferredencoding()
'UTF-8'

系统知道它应该是什么,而另一端,如果它也使用当前语言环境,将做正确的事情。

关于python - 如果命令行程序不确定 stdout 的编码,它应该输出什么编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5013599/

相关文章:

python - 将标签映射到 tf.unique_with_counts() 之后的计数

python异步线程异常处理

java - Py4j 在服务器中运行应用程序时出现异常

c++ - 将 LEVEL 包含到 SysLog 日志文件中

C:如何让线程相互通信?

python - 我如何了解运行此 Python 程序时遇到的错误?

linux - Linux RHEL 上的 RabbitMQ 内部内存路径映射到另一个位置

shell - php exec() 函数不适用于 ubuntu + nginx + fpm 上的所有命令

bash - 如何在 CURL 中使用 base64 命令?

python - 如何在 linux 上将日文平假名字符输入到 python 2.6 shell?