python 中文iso8859-1编码转utf8编码
来源:互联网 发布:mac版photoshop快捷键 编辑:程序博客网 时间:2024/06/06 20:36
在项目中使用wget 进行ftp下载文件时,由于ftp下载默认的是ascii模式,下载的文件编码是iso8859-1。
在python3中直接使用open函数的话,需要设置编码,不然会报错。
open("08M0063639_20170710.txt","r",encoding='iso8859-1')
这样做,假如文本是数字或者字母的时候,没有什么影响。但文本是中文的时候,获取的数据是iso8859-1编码的,进行数据操作时会出现乱码。
所以要将数据转化为utf8编码
uft_str = str.encode("iso-8859-1").decode('gbk').encode('utf8').decode('utf8')
先将文本转化成gbk编码,然后在从gbk编码变成utf8编码。
原理:
utf8编码的文本可以用iso8859-1的编码表示,但是反过来不行。iso8859-1是单字节编码,而utf8是定长编码,从utf8转化成iso8859-1相当于是高精度转化成低精度,造成精度丢失,所以不可逆。根本原因是因为utf8中文,在iso8859-1没有匹配的位置。
而gbk是不定长编码,英文数字的字符编码规则跟iso8859-1是一样的,所以gbk是兼容iso8859-1编码的,这两者可以相互转换。
阅读全文
1 0
- python 中文iso8859-1编码转utf8编码
- ISO8859编码
- utf8中文编码范围
- 修改tomcat默认iso8859-1的编码编码方式,支持中文路径
- python 中文编码(unicode,gbk,utf8,ordinary string)
- java编码 utf-8 gbk iso8859-1
- ISO8859-1 ASCII 拉丁编码介绍
- 编码解码!(UTF-8,iso8859-1,gbk)
- 将ISO8859-1字符串转成GB2312编码
- 字符编码·ISO8859
- 聊聊计算机中的编码(Unicode,GBK,ASCII,utf8,utf16,ISO8859-1等)以及乱码问题的解决办法
- 聊聊计算机中的编码(Unicode,GBK,ASCII,utf8,utf16,ISO8859-1等)以及乱码问题的解决办法
- GBK,UTF-8,和ISO8859-1编码区别与get,post请求中文乱码处理
- 修改tomcat默认iso8859-1的编码编码方式
- 修改tomcat默认iso8859-1的编码编码方式
- 修改tomcat默认iso8859-1的编码编码方式 .
- 修改tomcat默认iso8859-1的编码编码方式
- ANSI转UTF8编码
- struts2值栈取值从源代码中分析
- LeetCode
- 【java】java程序打包工具fatjar在eclipse环境下的安装和使用
- 远程过程调用协议
- Android JNI使用简介
- python 中文iso8859-1编码转utf8编码
- POJ 1182 食物链 (并查集)(需复习!!)
- 【C#机房重构】无法将类型为“JF.DAL.BillDAL”的对象强制转换为类型“JF.IDAL.IBillIDAL”
- 关于卫星的结构分析
- 内存泄露
- Effective C++ Item 16-成对使用new和delete时要采取相同形式
- 数据库FMDB的使用
- Python的orm框架sqlalchemy的查询多条数据只显示第一条!!
- Linux非root用户安装Python及相关库