美文网首页
字符编码-python

字符编码-python

作者: 狗狗胖妞 | 来源:发表于2017-03-21 17:03 被阅读10次

在python2.7下字符编码的问题

#--*-- coding:utf-8 --*-- 
s="你好"                     ##2.7就看第一行写啥
s_to_unicode=s.decode("gbk")
print s_to_unicode

结果为:浣犲ソ 其实这句话s_to_unicode=s.decode("gbk"),就相当于你非要用记事本打开word一样,没什么意义
s还是utf-8的编码格式,但你非要使用gbk的转码包,gbk的字节范围时包含utf-8的,但打开的是乱码而已,毕竟对应关系不一样

1 s="你好"
2 s_to_unicode=s.decode("gbk")
3 print s_to_unicode

如果没有第一行就会报错了,此时s将使用默认的ascii来存储,但ascii的字节范围是1个字节,无法保存的,就会报错了
http://www.cnblogs.com/work115/p/5924446.html

在python2中进行编码和解码的时候,不指定编码方式,那么python就会使用defaultencoding
1 #--*--coding:utf-8--
2 s="你好"
3 #: s是一个utf-8格式的字符串
4 u=s.decode("utf-8")
5 #: s被解码为unicode对象,赋给u
6 sg=u.encode("gbk")
7 #:  u被编码为gbk格式的字符串,赋给sg
8 print sg
1 #--*--coding:utf-8--*--
2 s="你好"
3 ss=s.encode("gbk")
4 print ss

上面的代码会报错,报错信息:'ascii' codec can't decode byte......
因为没有指定defaultencoding,所以其实在做这样的事情:s.decode('ascii').encode('gbk')
(ascii解码包是无法解码utf-8的)

设置defaultencoding代码如下:

1 reload(sys)
2 sys.setdefaultencoding('utf-8')

当然这些主要是在python2.x下的问题,没有特殊需求就用python3吧

python3默认的字符编码为unicode

相关文章

  • python 高级方法

    Python的字符串类型 字符编码方法 查看Python中的字符串编码名称,查看系统的编码 源文件字符集编码声明:...

  • python编码

    python编码 python编码简介 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,...

  • json与python

    Python 对象编码成 JSON 字符串 json.dumps 用于将 Python 对象编码成 JSON 字符...

  • Python中的字符串编码

    Python中的字符串编码 定义字符串 Python 中存在两种编码方式的字符串:ASCII 和 Unicode。...

  • python学习随便

    Python学习__字符串编码 对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()...

  • python 介绍 基本语法和流程控制

    python2 采用ascii字符集编码,python3 采用utf-8字符集编码 python 变量名:name

  • 学习任务

    1.python有关字符编码

  • 13.Python之字符编码

    Python之字符编码 字符编码字符编码记录的是二进制与文字的对应关系。 常见的字符编码ASCII码:包含英文字母...

  • Python编码问题

    默认编码 字符串 python2 文本字符串默认编码是ASCII,中文默认UTF-8python3 文本字符串默认...

  • Python基础之文件处理(二)

    Python基础文件处理 python系列文档都是基于python3 一、字符编码 在python2默认编码是AS...

网友评论

      本文标题:字符编码-python

      本文链接:https://www.haomeiwen.com/subject/qtugnttx.html