欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python2 的编码问题:

程序员文章站 2022-05-10 19:28:38
...

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’)