python中字符编码的总结和对比_Python 字符编码总结

最近做项目时碰到许多python的编解码问题,特此总结一下。

1.    首先如果你在python文件中需要使用到一些除ascii以外的特殊字符,则需要申明#coding:utf8等,你也可以在中间加上一些其他字符,但是python本身只检测#和coding以及编码字符串。如果你声明这句以后,你在python文件中使用的特殊字符则默认以这种方式编码。编码字符串是不区分大小写的,所以utf8和UTF8,Utf-8都是没有区别的。#coding: UTF-8

2.    python当中默认的编码格式是Unicode,然后如果你想要将一种字符转换成另一种字符是不能直接转换的,而是先应该使用decode函数将特殊编码转换成Unicode,然后将Unicode再转换成另一种字符,比如将GBK转换成utf8.str.decode('gbk').encode('utf-8')

3.    有时候我们会遇到一个问题就是当你将一个字符串解码成Unicode时,有些特殊字符是无法转换的,这时你可以在decode中加入参数'ignore',代表你忽视此参数的转换。str.decode('gbk', 'ignore').encode('utf-8')

4.     有时候默认做一些string处理时,python会默认把字符串转换成Unicode形式,所以会碰到3所指的问题,就是有些特殊字符不能转换(然后报错),但是你又希望以后继续使用原有编码格式的字符,咋办呢?先手动转换成Unicode,再encode成原有格式,则python做默认转换成Unicode处理时就不会报错了。str.decode('utf-8','ignore').encode('uft-8')

5.     当一个字符串中包含两种编码字符时最好用4所使用的方式先转换一下,以防出现意想不到的bug。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值