python编码问题汇总

2.7版本
1.python内部是unicode编码,所以,所有的编码转换,都得经过unicode这个中间转换
2.程序中出现字符串时一定要加一个前缀u
3.不要用str()函数,用unicode()代替
4.不要用过时的string模块。如果传给它非ASCII码,它会把一切搞砸。
5.只有你要写入文件或者数据库或者网络时,才调用encode()函数和decode()函数。
decode 与encode的记忆意思的说明
de-前缀同dis-前缀, 有 "away from" 远离之意,
in前缀en前缀 有 “放进”,“使进入”,“登入”之意

py源文件编码问题
1.源代码文件前面加:#coding=utf8
2.在使用一些文本编辑器时注意保持的编码格式。一定是utf-8,与源文件的第一句话统一 

另外:
1.windows的cmd是GBK编码方式的,输出到CMD时需要变成GBK才能正常显示汉字

decode和encode的另一个知识点
s.decode('gbk','ignore').encode('utf-8′) 

因为decode的函数原型是decode([encoding], [errors='strict']),可以用第二个参数控制错误处理的策略,默认的参数就是strict,代表遇到非法字符时抛出异常;

如果设置为ignore,则会忽略非法字符;

如果设置为replace,则会用?取代非法字符;
如果设置为xmlcharrefreplace,则使用XML的字符引用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值