zoukankan      html  css  js  c++  java
  • python 编码问题

    一、如何查看读取文件的编码

    """
    windows中文件的编码为:GB2312,Linux中文件的编码为:UTF-8
    即windows中新的txt编码为GB2312
    """
    import
    chardet #引入查看编码的模块 with open('d:/ceshi/aa1.txt', 'r') as ff: cc=ff.read().encode('GB2312') dd=chardet.detect(cc) print(dd) 或
    import chardet    #引入查看编码的模块
    with open('d:/ceshi/aa1.txt', 'rb') as ff:
        cc=ff.read()
        dd=chardet.detect(cc)
        print(dd)
    结果:
    {'encoding': 'GB2312', 'confidence': 0.3703703703703704, 'language': 'Chinese'}
    注意:chardet中detect只支持encodi编码过的类型,如果没有编码的类型会类型错误。

    二、如何改变读取文件的编码

    import chardet    #引入查看编码的模块
    with open('d:/ceshi/aa1.txt', 'r') as ff:  #读取的时候是gb2312
        cc=ff.read().encode('utf-8') #改变编码为utf-8
        dd=chardet.detect(cc)   #调用查看编码模块
        print(dd)     #查看编码类型
    
    结果:
    {'encoding': 'utf-8', 'confidence': 0.99, 'language': ''}

    改变后,可以直接写入文件,上传至linux后即不会出现乱码,记住写入时候需要必须使用wb格式,因为open中的write仅支持str类型,所以,需要使用byte类型写入

    with open("d:/ceshi/aa9.txt",'wb') as hh:
        hh.write(cc)

    三、编码与解码

    encode  编码  和  decode 解码
    
    with open('d:/ceshi/aa1.txt', 'r') as ff:
        cc=ff.read().encode('utf-8')   #使用utf-8进行编码
        kk=cc.decode('utf-8')    #使用utf-8进行解码
        print(cc)
        print('-----------')
        print(kk)
    
    结果:
    b'xe6x9ax97xe6x81x8bxe6x88x91xe6x8bx89xe6x8ex89xe8x89xbexe8xbfxaaxe5xbaxb7klsjdflad12
    '
    -----------
    暗恋我拉掉艾迪康klsjdflad12
  • 相关阅读:
    二.二分法总结
    20201214 Json与pickle数据序列化
    20201213-1 HTML基本标签(一)
    20201207-2 openpyxl 库与模块导入
    20201207-1 实例变量与类变量
    20201205-3 HTML环境搭建与文件基本结构
    20201205-2 HTML概念与版本
    20201204-3 opp编程好处与构造函数
    20201204-2 面向对象特性介绍
    20201204-1 面向对象介绍
  • 原文地址:https://www.cnblogs.com/weilaibuxiangshuo/p/10706363.html
Copyright © 2011-2022 走看看