python脚本接收参数 中文乱码_python 中文乱码问题深入分析

本文详细分析了Python中处理中文乱码的问题,包括str和unicode的区别,如何进行编码和解码转换,setdefaultencoding的影响,以及不同文件编码格式的读写操作。通过实例展示了编码声明对源文件和字符串解析的影响,并解释了为何在不同编码环境下可能出现乱码现象。
摘要由CSDN通过智能技术生成

在本文中,以'哈'来解释作示例解释所有的问题,“哈”的各种编码如下:

1. UNICODE (UTF8-16),C854;

2. UTF-8,E59388;

3. GBK,B9FE。

一、python中的str和unicode

一直以来,python中的中文编码就是一个极为头大的问题,经常抛出编码转换的异常,python中的str和unicode到底是一个什么东西呢?

在python中提到unicode,一般指的是unicode对象,例如'哈哈'的unicode对象为

u'\u54c8\u54c8'

而str,是一个字节数组,这个字节数组表示的是对unicode对象编码(可以是utf-8、gbk、cp936、GB2312)后的存储的格式。这里它仅仅是一个字节流,没有其它的含义,如果你想使这个字节流显示的内容有意义,就必须用正确的编码格式,解码显示。

例如:

对于unicode对象哈哈进行编码,编码成一个utf-8编码的str-s_utf8,s_utf8就是是一个字节数组,存放的就是'\xe5\x93\x88\xe5\x93\x88',但是这仅仅是一个字节数组,如果你想将它通过print语句输出成哈哈,那你就失望了,为什么呢?

因为print语句它的实现是将要输出的内容传送了操作系统,操作系统会根据系统的编码对输

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值