python 编码 问题 UTF-8 unicode

每次遇到python处理含有中文的字符串时,utf-8, unicode, gb2312这些名词总是跳出来捣乱,然后经过网上一番搜索和烦恼的测试之后,才能最终解决问题。

可是,但是,可但是,这个问题在再一次遇到的时候,又是一番重复,烦不胜烦之下,记在案,常常来温习一下。(难道是我脑子不好了,没记性了,疲了???)

 

一些名词

ASCII - 一种编码方式

UNICODE - 又一种编码方式

UTF-8 - 又一种编码方式

Little endian和Big endian - 编码的“码”是如何存放的,从小到大还是从大到小

GB2312 - 汉字编码的一种,

代码页 -就是代码页

 

到这里看看就明白了,别的地方都不需要再看了

http://wiki.woodpecker.org.cn/moin/PyInChinese

 

 

关键的地方:如果python源文件中出现非ascii字符串,就需要指定编码声明

如果你的代码中出现:s = u"大a小",python大概要用编码声明,大概啊就要用编码声明去将字符串s转换为PyUnicodeObject

如果你编码声明为utf-8,而文件保存的格式不是utf-8,那么python解释就会出错。

如果你编码声明为gbk,那么,很好,你python源文件保存可以了,操作系统保存中文就是用系统的缺省编码保存的。

不论你的编码是什么,如果你在脚本执行过程中读入一个文件,那么这个就不是python在解释你的脚本,而是脚本的执行了。

这个文件的编码格式只有你知道,你把这个文件的内容送给一个字符串,是需要decode还是encode就只有你自己知道了。

 

 

几个常数,背下来有好处

D1 CF 严GB2312编码

严Unicode 编码是4E25。

严的UTF-8: E4B8A5

 

0x3f800000=1.0

0x3f333333=0.7

01 03 00 00 00 01 =  0a 84

01 03 00 01 00 01 =  ca d5

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值