Python 抓取网页乱码问题 以及EXCEL乱码

时间:2021-01-24 23:48:08
import codecs
f1=codecs.open('items.json', 'r', encoding='utf-8').read().decode("unicode_escape")
f=codecs.open('out.txt','wb',encoding='utf-8')
print >>f,f1
f.close()

字符编码问题的确是万年的难题。之前我也处理过 R 语言中文乱码的问题,it just drives me crazy!!!!!!!!!!!!!!!!! HOLY SHIT!!!!!!!!!!!!

要么就是这样的错误

UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\u200e’ in position 43: illegal multibyte sequence

要么就是可以读取然后就乱码。

我本身环境为UTF-8.

>>> import sys;
>>> print(sys.getdefaultencoding());
utf-8

在第一行加上

# -*- coding: utf-8 -*-

将你的PY文件改为UTF-8文件格式,然后就

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

完美解决方案:

BYTES.decode("GBK",'ignore').encode("GBK").decode('UTF-8','ignore')
#总之尼玛你就GBK和UTF-8之间搞来搞起就好了!艹!

EXCEL 乱码问题

可能大家都遇到过,python在输出的csv文件中如果有utf-8格式的中文,那么在使用excel打开该csv文件时,excel将不能够有效识别 出文件中的中文数据,严重时甚至不能够识别出分隔符。那么,要怎样操作才能够让excel识别出utf-8格式的中文呢?方法其实很简单,见以下代码:

  1. import codecs
  2. with open('ExcelUtf8.csv', 'w') as f:
  3. t = u'中国人'
  4. f.write(codecs.BOM_UTF8)
  5. f.write('%s,1,3\n' % t.encode('utf-8'))

运行代码,使用excel打开,截图如下:

Python 抓取网页乱码问题 以及EXCEL乱码

如果我们屏蔽掉其中的一句代码

  1. import codecs
  2. with open('ExcelUtf8.csv', 'w') as f:
  3. t = u'中国人'
  4. #f.write(codecs.BOM_UTF8)
  5. f.write('%s,1,3\n' % t.encode('utf-8'))

再次运行代码,使用excel打开,截图如下:

Python 抓取网页乱码问题 以及EXCEL乱码

其中具体的原理,大家可以去百度:BOM了

That which didn't kill me makes me stronger