zoukankan      html  css  js  c++  java
  • 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 ' % 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 ' % t.encode('utf-8'))  

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

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

    That which didn't kill me makes me stronger
  • 相关阅读:
    learnyou 相关网站
    hdu 3038 How Many Answers Are Wrong
    hdu 3047 Zjnu Stadium 并查集高级应用
    poj 1703 Find them, Catch them
    poj 1182 食物链 (带关系的并查集)
    hdu 1233 还是畅通工程
    hdu 1325 Is It A Tree?
    hdu 1856 More is better
    hdu 1272 小希的迷宫
    POJ – 2524 Ubiquitous Religions
  • 原文地址:https://www.cnblogs.com/kiddy/p/4354061.html
Copyright © 2011-2022 走看看