专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

python数据要输中文吗_python

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 2:11:16       共计:3571 浏览

python数据要输中文吗?

需要使用中文就输入中文,大多数情况下应该是用不着的。

首先,Python 3内部str采用Unicode编码,不是UTF-8编码。Unicode是字符编码,UTF-8是字符传输编码(当然也用于文件存储),二者不是一个概念。在Unicode出现之前,字符编码和字符传输编码没有区别,比如ASCII,GBK、BIG5等等。Unicode编码不用于直接传输或存储,对应于Unicode的传输编码有UTF-8、UTF-16、UTF-32等多种格式,通常采用UTF-8编码,在Unicode编码小于256时,与ASCII编码完全一致,兼容性好,而且传输量也比UTF-16、UTF-32要小。

在Python 2时代,Python的str对象是简单的字节流,默认ASCII编码,无法直接打印非ASCII字符,unicdoe对象内部采用Unicode编码,才支持非ASCII字符打印。对于非ASCII字符需要decode()指定编码转换unicode,输出时encode()转换为具体传输编码,用于显示、保存、传输。

Python 3时代,str对象内部采用unicode实现,相当于Python 2的unicode对象,同时用bytes对象来表示原始的字节流也就是原始的传输或者存储的字节。Python 3默认的传输和存储字节流是UTF-8编码,也就是说,不指定原始字节流编码的情况下,Python 3自动按照UTF-8解码原始字节流,并自动转换为Unicode字符编码用于内部处理。同样,输出时如果不指定编码,也会自动转换为UTF-8编码格式(不一定正确,再某些系统上,Python 会检测运行环境的编码,自动转换为环境的默认编码)。

因此,Python 3 强烈建议,在传输和存储时都采用UTF-8编码,这样就无需考虑字符编码的问题。

为了与其他系统或者软件兼容,Python 3同样提供了decode()、encode()函数用于Unicode与其他传输编码的转换。并且,对open()函数增加了encoding参数,用于非UTF-8编码的文件读写的支持。

所以,你要清楚的是,原始数据文件的编码格式。如果是UTF-8编码,使用Python 3时无需考虑编码问题。如果是GB2312 、GBK等那么就有两种方式,一是指定encoding参数打开,得到的str对象;或者以二进制,即mode参数指定'b',得到bytes对象,再decode()解码,转换为unicode对象。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:经常看到的python培训机构排名靠谱嘛_python | ·下一条:夸克看剧卡怎么解决_服务器

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有