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

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.   
  3. with open('ExcelUtf8.csv', 'w') as f:  
  4.     t = u'中国人'  
  5.     f.write(codecs.BOM_UTF8)  
  6.     f.write('%s,1,3\n' % t.encode('utf-8'))  

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

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

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

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

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

That which didn't kill me makes me stronger

 

posted @ 2015-03-20 16:44  西番莲果汁  阅读(680)  评论(0编辑  收藏  举报