sys.argv
元素使用什么编码方式进行编码?它们是否使用sys.getdefaultencoding()
编码方式进行编码?
PS:正如一些答案所指出的那样,
sys.getdefaultencoding()
:返回Unicode实现所使用的当前默认字符串编码名称。
sys.stdin.encoding
可能是一个更好的猜测。我希望看到这个问题的明确答案,并提供有关可靠来源的指针!
PPS:正如Wim指出的那样,Python 3通过将str
对象放入sys.argv(如果我理解正确)来解决了这个问题。然而,在Python 2.x中,这个问题仍然存在。在Unix下,LC_CTYPE环境变量似乎是正确的检查对象,对吗?在Windows中应该怎么做(以便无论控制台是什么样子,sys.argv元素都能被正确地解释)?