你如何从python脚本中获得终端的编码?

Auf*_*ind 12 python terminal encoding

假设您想要使用某些参数启动python脚本

python myscript some arguments
Run Code Online (Sandbox Code Playgroud)

据我所知,这些字符串sys.argv[1]sys.argv[2]将在终端指定的编码.有没有办法从python脚本中获取此信息?

我的目标是这样的:

terminal_enocding = some_way.to.GET_TERMINAL_ENCODING
some = `sys.argv[1]`.decode(terminal_encoding)
arguments = `sys.argv[2]`.decode(terminal_encoding)
Run Code Online (Sandbox Code Playgroud)

raf*_*ufo 21

sys.stdout.encoding将为您提供标准输出的编码.sys.stdin.encoding会给你标准输入的包含.


小智 8

您可以调用locale.getdefaultlocale()并使用元组的第二部分.

在这里查看更多(Fedora wiki条目,解释为什么以及Python中默认编码的方式)