答案是sys.stdin.encoding可直接获取标准输入编码,如utf-8或cp936;在重定向、管道或非终端环境可能为None或不一致,需结合locale.getpreferredencoding()参考,且该属性只读不可修改。

在Python中查看stdin的编码方式,可以通过sys.stdin.encoding属性直接获取。这个属性返回当前标准输入流使用的字符编码。
使用sys模块中的stdin对象,可以直接访问其encoding属性:
import sys print(sys.stdin.encoding)
运行这段代码,会输出类似utf-8、cp936(Windows中文系统常见)或UTF-8的结果,具体取决于你的操作系统和终端设置。
echo "text" | python script.py),sys.stdin.encoding仍会保留原始终端的编码信息,但在某些系统上可能为None。stdin可能被包装过,encoding属性可能与实际终端不一致。codecs.getreader包装sys.stdin.buffer。可以结合locale模块查看推荐的文本编码,作为参考:
本文档主要讲述的是j2me3D游戏开发简单教程; 如今,3D图形几乎是任何一部游戏的关键部分,甚至一些应用程序也通过用3D形式来描述信息而获得了成功。如前文中所述,以立即模式和手工编码建立所有的3D对象的方式进行开发速度很慢且很复杂。应用程序中多边形的所有角点必须在数组中独立编码。在JSR 184中,这称为立即模式。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
立即学习“Python免费学习笔记(深入)”;
import sys
import locale
print("stdin encoding:", sys.stdin.encoding)
print("preferred encoding:", locale.getpreferredencoding())
两者通常一致,但stdin.encoding更准确反映当前输入流的实际编码。
sys.stdin.encoding是最简单有效的方法。
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号