python字符编码

1 字符编码

ascii 码是一个字节,通常只能显示英文字母和数字。 unicode码为了显示多种语言产生,但是要占用两个字节,显示文字要占用大量空间 utf-8 为了节约空间而生,英文字符只用一个字节存储,中文字符需要三个字节

character ascii unicode utf-8
A01000000100000000 010000010100000001
x01001110 0010110111100100 10111000 10101101
  • 计算机内存中,统一使用unicode 编码,当保存到硬盘或者需要传输的时候,就转成UTF-8.
  • 浏览网页时,服务器会动态生成的 unicode 内容转换为UTF-8,再传输到浏览器,所以有时候用框架传递中文字符时,需要手动地把utf-8转换为unicode码。

2 python字符串

  • python的源码文件一般是UTF-8模式编码的
  • 所以python源码中的字符都要当作UTF-8来看待
  • so, str.decode('utf-8')实际上是解码为unicode编码方式,可以把unicode当作所有字符转换的中间量,encode时,一般要转换为unicode格式.
>>> u"空间"
u'\u7a7a\u95f4'
>>> "空间"
'\xe7\xa9\xba\xe9\x97\xb4'
>>> "空间".decode('utf-8')
u'\u7a7a\u95f4'
>>> print "空间".decode('utf-8').encode('gb2312')
\227ռ\344
>>> print "空间".encode('gb2312')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 0: ordinal not in range(128)
>>>

3 python格式化

  • python的格式化是一个很强大的功能 类似与C 语言的格式化输入、输出,比如:
  • "hello, %s , number:%d" % ('tom', 10)
  • u"hello, %s" % u"tome"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值