python字符串编码常见问题

本文探讨了Python 2.4中的字符串编码问题,包括Unicode、UTF8、GBK、UTF16的区别,encode和decode操作,Unicode操作符,以及在不同场景下可能出现的UnicodeDecodeError和UnicodeEncodeError。强调了文件头的编码声明,以及如何判断字符串类型,建议尽量通过Unicode进行字符串操作。
摘要由CSDN通过智能技术生成
使用python时经常会遇到字符串编解码的问题,这里分享2.4版本中一些与之相关的经验。
1)unicode和UTF8、gbk、UTF16的区别。
     简单来说,unicode是一种编码标准,UTF8,gbk,UTF16都是具体的编码,可以认为是unicode的实现,通常用于数据的存储和传输。例如”中“的unicode编码是4e2d, gbk编码是d6d0。utf8编码是E4 B8 AD。

2)python里的encode和decode
   假设,a = u"中" (u表示a是unicode字符),python里encode通常是将unicode形式的字符编码成具体编码(例如gbk)。反之,decode是将具体的编码转化成unicode。
   例如:
        aGbk = a.encode("gbk")  aGbk保存"中"的gbk编码结果。
        aUtf8 = a.encode("utf8")  aUtf8保存"中"的utf8的编码结果
        aUnicode = aGbk.decode("gbk") 使用gbk将aGbk解码成unicode。此时aUnicode与a相等
        aUnicode = aUtf8.decode("utf8") 使用utf8将aUtf8解码成unicode。此时aUnicode与a相等

3) unicode操作符
   有时会见到 b= unicode("中","gbk")这种表达式。实际上,unicode和decode的作用等效。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值