0、编码

编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

str1.decode('gb2312')    #将gb2312编码的字符串转换成unicode编码
str2.encode('gb2312')    #将unicode编码的字符串转换成gb2312编码

注意事项:

s=‘中文’ 如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需要先用decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。
在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。
如果字符串是这样定义: s=u’中文’ 则该字符串的编码就被指定为unicode了,即python的内部编码,而与代码文件本身的编码无关。只需要直接使用encode方法将其转换成指定编码即可
如果一个字符串已经是unicode了,再进行解码则将出错,因此通常要对其编码方式是否为unicode进行判断isinstance(s, unicode) #用来判断是否为unicode

1、查看编码方式

(1)对于我们经常使用的记事本,“文件” -> “另存为”,可查看到当前的编码方式。
(2)用notepad++打开,点击“菜单栏” -> “格式”可以查看到。
(3)UltraEdit:
不同编码的文本,是根据文本的前两个字节来定义其编码格式的,定义如下:

ANSI:        无格式定义;
Unicode:       前两个字节为FFFE;
Unicode big endian: 前两字节为FEFF; 
UTF-8:        前两字节为EFBB; 
这样通过前面两个字节就可以判定出文件的具体格式了。

2、python编码

当python要做编码转换的时候,会借助于内部的编码,转换过程是这样的:
原有编码 -> 内部编码 -> 目的编码

python的内部是使用unicode来处理的,但是unicode的使用需要考虑的是它的编码格式有两种,一是UCS-2,它一共有65536个码位,另一种是UCS-4,它有2147483648g个码位。

判断安装的python是用什么编码方式:

import sys
print(sys.maxunicode)

如果输出的值为65535,那么就是UCS-2,如果输出是1114111就是UCS-4编码。

转换成内部码:

c = "风卷残云"
print(type(c))
c = bytes(c,encoding='utf-8')
print(type(c))
print(c)
b = codecs.decode(c, "utf-8") #与c.decode()等效
print(type(b))
print(b)
print(c.decode())

输出:

<class 'str'>
<class 'bytes'>
b'\xe9\xa3\x8e\xe5\x8d\xb7\xe6\xae\x8b\xe4\xba\x91'
<class 'str'>
风卷残云
风卷残云

3、codecs模块

codecs专门用作编码转换。通过它的接口是可以扩展到其他关于代码方面的转换。

在python3.x中可以直接将bytes类型的数据转换成其他编码格式,而不用手动先转成unicode。

import codecsa = "我爱你"# 创建utf-8编码器
look = codecs.lookup('utf-8')type(a)
a = bytes(a,encoding='utf-8')b = look.decode(a)
print(b)

输出:

('我爱你', 9)

返回的元组中b[0]是数据,b[1]是长度。

** 用codecs提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode**

f = codecs.open(filepath, 'r', 'utf8')

读取方式有很多种,这里的f是可以用for循环遍历的,当然也可以直接用readline或者readlines函数方法来读取。

#for i in f:
#   print(i)#f.readline()
#f.read()
#f.readlines()

参考自:

https://www.cnblogs.com/hester/p/5465338.html
https://www.jb51.net/article/63708.htm

python转换模块codecs相关推荐

  1. python codecs_python中转换模块codecs的讲解(附示例)

    本篇文章给大家带来的内容是关于python中转换模块codecs的讲解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 0.编码 编码转换时,通常需要以unicode作为中间 ...

  2. python :codecs模块简介

    python :codecs模块简介 python对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理. 有一点需要清楚的是,当python ...

  3. 详解Python的codecs模块

    浅析Python的codecs模块 编码转化 codecs.open() 总结 Reference 编码转化 codecs专门用作编码转换. # -*- encoding: gb2312 -*- im ...

  4. python codecs_Python codecs.register方法代码示例

    本文整理汇总了Python中codecs.register方法的典型用法代码示例.如果您正苦于以下问题:Python codecs.register方法的具体用法?Python codecs.regi ...

  5. Python的codecs模块

    参考Python的codecs模块 - 云+社区 - 腾讯云 codecs专门用作编码转换. # -*- encoding: gb2312 -*- import codecs, sysprint ' ...

  6. python:codecs --- 编解码器注册和相关基类

    python:codecs --- 编解码器注册和相关基类 这个模块定义了标准 Python 编解码器(编码器和解码器)的基类并提供对内部 Python 编解码器注册表的访问,该注册表负责管理编解码器 ...

  7. python中codecs模块_python自然语言编码转换模块codecs介绍

    python对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理. 有一点需要清楚的是,当python要做编码转换的时候,会借助于内部的编码 ...

  8. python使用codecs模块进行文件操作-读写中英文字符

    由于python中默认的编码是ascii,如果直接使用open方法得到文件对象然后进行文件的读写,都将无法使用包含中文字符(以及其他非ascii码字符),因此建议使用utf-8编码. 使用方法 读 下 ...

  9. python使用codecs.open 读写

    由于python中默认的编码是ascii,如果直接使用open方法得到文件对象然后进行文件的读写,都将无法使用包含中文字符(以及其他非ascii码字符),因此建议使用utf-8编码. 使用方法 读 下 ...

最新文章

  1. DCMTK:将DICOM结构化报告文件的内容转换为XML格式
  2. List、Array与ArrayList
  3. 这些年微软相关的技术总结, Javascript在客户端的使用
  4. 云盾idaas登陆_移动端扫码登录IDaaS平台
  5. mydate97设置时间
  6. 单位元转换万元怎么转_PDF转CAD怎么转换
  7. 大数据之-Hadoop3.x_MapReduce_序列化案例需求分析---大数据之hadoop3.x工作笔记0096
  8. hadoop中遇到的问题
  9. 系统架构师学习笔记_第十一章(下)_连载
  10. 【面试】求数组子序列的最大和
  11. 【工具使用】apizza和postman中post请求下form-data、x-www-form-urlencoded、raw、binary的区别
  12. 初学视觉学习笔记----打开摄像头遇到的问题
  13. 二八定律 80/20法则 帕累托法则、帕累托定律、马特莱定律、最省力法则或不平衡原则
  14. word 2016样式设置及样式集保存
  15. 相关系数|皮尔逊和斯皮尔曼
  16. 【AviUtl】动画效果,简易Glitch++(派生),学习笔记
  17. 端游开发中用什么技术可以让用户更短时间内体验游戏?端游分发
  18. 微信CRM管理系统功能分析
  19. 使用shUnit2进行shell scritp自动化测试
  20. TCP丢包原因、解决办法

热门文章

  1. 解决报错:Avoid mutating a prop directly since the value will be overwritten whenever
  2. 网页缩放与窗口缩放_为什么即使缩放会议说加密会议也没有加密?
  3. 为什么需要进行app测试?
  4. 每日技巧分享:电子书怎么转成TXT格式?
  5. Excel打印如何让每一页都有相同的顶端标题和底端标题以方便阅读
  6. 8G+256G固态,2020新款笔记本,吃鸡贼爽!
  7. Python数据可视化的例子——小提琴图(violin)
  8. Git配置SSH 免密登录
  9. 2021-12-14 股票模拟交易心得9
  10. 树莓派连接手机热点,电脑连接手机热点,电脑通过ssh连接树莓派的方法