pythonutf8转gbk,Python实现把utf-8格式的文件转换成gbk格式的文件
需求:将utf-8格式的文件转换成gbk格式的文件
实现代码如下:
代码如下:
def ReadFile(filePath,encoding=”utf-8″):
with codecs.open(filePath,”r”,encoding) as f:
return f.read()
def WriteFile(filePath,u,encoding=”gbk”):
with codecs.open(filePath,”w”,encoding) as f:
f.write(u)
def UTF8_2_GBK(src,dst):
content = ReadFile(src,encoding=”utf-8″)
WriteFile(dst,content,encoding=”gbk”)
代码讲解:
函数ReadFile的第二个参数指定以utf-8格式的编码方式读取文件,返回的结果content为Unicode然后,在将Unicode以gbk格式写入文件中。
这样就能实现需求。
但是,如果要转换格式的文件中包含有一些字符并不包含在gbk字符集中的话,就会报错,类似如下:
代码如下:
UnicodeEncodeError: ‘gbk’ codec can’t encode character u’\xa0′ in position 4813: illegal multibyte sequence
以上的报错信息的意思是:在将Unicode编码成gbk的时候,不能将Unicode u’\xa0’编码成gbk。
这里,我们需要弄清楚gb2312、gbk和gb18030三者之间的关系
代码如下:
GB2312:6763个汉字
GBK:21003个汉字
GB18030-2000:27533个汉字
GB18030-2005:70244个汉字
所以,GBK是GB2312的超集,GB18030是GBK的超集。
理清了关系之后,我们进一步改进下代码:
代码如下:
def UTF8_2_GBK(src,dst):
content = ReadFile(src,encoding=”utf-8″)
WriteFile(dst,content,encoding=”gb18030″)
运行后,发现没有报错,可以正常运行。
因为,在GB18030字符集中,可以找到u’\xa0’对应的字符。
此外,还有另外一种实现方案:
需要修改下WriteFile方法
代码如下:
def WriteFile(filePath,u,encoding=”gbk”):
with codecs.open(filePath,”w”) as f:
f.write(u.encode(encoding,errors=”ignore”))
这里,我们将Unicode编码(encode)成gbk格式,但是注意encode函数的第二个参数,我们赋值”ignore”,表示在编码的时候,忽略掉那些无法编码的字符,解码同理。
但是,当我们执行后,发现可以成功的将utf-8格式的文件修改成了ansi格式。但,另外发现生成的文件中,每个一行都有一行空行。
这里,可以指定以二进制流的形式写文件,修改后的代码如下:
代码如下:
def WriteFile(filePath,u,encoding=”gbk”):
with codecs.open(filePath,”wb”) as f:
f.write(u.encode(encoding,errors=”ignore”))
pythonutf8转gbk,Python实现把utf-8格式的文件转换成gbk格式的文件相关推荐
- python中utf-8和gbk编码格式_Python实现把utf-8格式的文件转换成gbk格式的文件
需求:将utf-8格式的文件转换成gbk格式的文件 实现代码如下: 复制代码 代码如下: def ReadFile(filePath,encoding="utf-8"): with ...
- 用Python批处理将WORD文件转换成PDF格式(工具:win32com模块)
用Python批处理将WORD文件转换成PDF格式 一.问题分析 key words:批处理.WORD转换PDF.办公自动化 二.材料准备 三.代码实现 ☆其他问题:日常遇到问题,整理笔记不易,欢迎交 ...
- python声明编码为gbk_python入门:UTF-8转换成GBK编码
1 #!/usr/bin/env python 2 #-*- coding:utf-8 -*- 3 #UTF-8转换成GBK编码 4 #temp(临时雇员,译音:泰坡) 5 #decode(编码,译音 ...
- mysql gbk编码 字节数,mysql中utf-8编码数据库转换成GBK编码的问题
摘要 腾兴网为您分享:mysql中utf-8编码数据库转换成GBK编码的问题,之了课堂,易信,一折包邮,星球联盟等软件知识,以及七日杀,草莓软件,装修施工站,桔子会,桌面切换,看小说神器,酷派应用商店 ...
- python tif格式的图片转换成其他格式
为了解决python 将tif格式图片用cv2等其他包转成其他格式,会出现图片变成灰色或者其他颜色的问题. 用第三方库tifffile就可以完全解决这个问题,代码如下: import tifffile ...
- python批量pdf转图片_批量把PDF文件文件转换成图片格式
[Python] 纯文本查看 复制代码# -*- coding: utf-8 -*- """ 1.安装库 pip install pymupdf 2.直接运行 " ...
- python文件转换成exe和apk文件
将Python文件转换为Exe文件可以使用pyinstaller或cx_Freeze等工具来实现.这些工具将Python文件转换为独立的可执行文件,这样就可以在没有Python环境的计算机上运行该程序 ...
- python 怎么将数组转为列表_图片转换成pdf格式怎么操作?什么软件能将图片转为pdf?...
伙伴们好,你们知道如何把图片转为pdf格式吗?前一阵子我参加了一个家居行业大会,在会议上拍摄了不少会议照片,包括主持人讲话.嘉宾出席.观众提问.产品推广等环节都拍摄了不同的角度.拍摄好后,需要传送给写 ...
- python中object转为float_object格式怎样无损转换成float64格式
这次给大家带来object格式怎样无损转换成float64格式,object格式无损转换成float64格式的注意事项有哪些,下面就是实战案例,一起来看一下. 在数据处理过程中 比如从CSV文件中导入 ...
最新文章
- EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证...
- uefi启动u盘安装系统_技嘉uefi启动怎么安装win8.1系统【安装教程】
- 奥密克戎新毒株XE出现!传播速度快10%
- Android各个文件夹对应的分辨率?
- [Java]jdbc[转]
- 将应用程序集成为Heroku附加组件
- 宇轩网络面试题目PHP,二十道接地气的php面试题,让你直接通过面试!就此奉上~...
- qq音乐2012绿色版
- MATLAB转化彩色图片为灰度图片命令行窗口代码:
- jquery的ajax用法
- “飞天、无影、小蛮驴…”带你走进2020云栖大会
- 215.数组中第的K个最大元素(力扣leetcode) 博主可答疑该问题
- 基于Pytorch的YoLoV4模型代码及作品欣赏
- 动态规划求解金矿问题
- Error: Unresolved node modules: vue
- “凸现”三围的健身运动法(图)
- 笔记本电脑计算机里面怎么管理,联想笔记本里我的电脑不见了怎么办啊
- 树梅派应用38:树莓派 SAKS 扩展板挑战应用 之 PM2.5 指示灯
- Iterative closest point (ICP) 算法
- android fragmentpageradapter切换不更新,android – FragmentPagerAdapter不会在方向更改时重新创建片段吗?...