Python2 的编码问题:

1."\u6768\u777f"

比如这样一个字符串"\u6768\u777f",无论怎么print它都是这个形式因为它是文本,不是编码,那么怎么转为中文呢,则需要用如下命令:
print text.decode(‘unicode_escape’)


2. \xe6\x9d\xa8"

就代表着一个字 ,对于这些字符,只需要使用如下命令即可从文本转为编码字符串
print text.decode(‘string_escape’)


3.将"\\“替换为”\"

一般在提取json中会用到,例如下面的s

s='\\u90ae\\u8d44\\u5c01\\u7247'
str="\\".join(s.split('\\')).decode('unicode_escape').decode('unicode_escape')
print(str)
-->> '邮资封片'

4.python2写入文件

for i in cate_list:

            # {'url': 'list.html?cat=13887,13931', 'cate_name': '\\u90ae\\u8d44\\u5c01\\u7247'}
            a = json.dumps(i)
            a = "\\".join(a.split('\\')).decode("unicode_escape")
            a=a.decode("unicode_escape")
            print(a)
            try:
                with open("jdong2.txt", "a") as f:
                    # f.write(a.decode("unicode_escape").encode("utf8")+'\n')
                    f.write(a.encode("utf8")+'\n')
            except Exception as e:
                print(e)

5.‘ascii’ codec can’t encode character u’\uff08’

in position 9: ordinal not in range(128)

即使你设置了# -- coding:utf-8 --,写入中文的时候还是出现的这个问题,我的解决是这样的

import sys

reload(sys)
sys.setdefaultencoding('utf8')

如果还是有问题,查看下,字符串里面是不是有\uff08这样的字符串,换用decode(‘latin1’)

6. unicode 编码的url:

最近遇到这个坑,在Python2 中,url应该是字符串的,但是实际从网页中取出的确是unicode编码的url,导致在请求的时候出现了与抓包结果不同的response,而且花了好久的时间才找打原因.记录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值