关键是利用unicode内部编码
主要介绍了python的编码机制,unicode, utf-8, utf-16, GBK, GB2312,ISO-8859-1 等编码之间的转换。
**常见的编码转换分为以下几种情况:**
===== unicode 转换为其它编码(GBK, GB2312等) =====
例如:a为unicode编码 要转为gb2312。a.encode('gb2312')
<code python>
# -*- coding=gb2312 -*-
a = u"中文"
a_gb2312 = a.encode('gb2312')
print a_gb2312
</code>
===== 其它编码(utf-8,GBK)转换为unicode =====
例如:a为gb2312编码,要转为unicode. unicode(a, 'gb2312')或a.decode('gb2312')
<code python>
# -*- coding=gb2312 -*-
a = u"中文"
a_gb2312 = a.encode('gb2312')
print a_gb2312
a_unicode = a_gb2312.decode('gb2312')
assert(a_unicode == a)
a_utf_8 = a_unicode.encode('utf-8')
print a_utf_8
</code>
===== 非unicode编码之间的转换 =====
编码1(GBK,GB2312) 转换为 编码2(utf-8,utf-16,ISO-8859-1)
可以先转为unicode再转为编码2
如gb2312转utf-8
<code python>
# -*- coding=gb2312 -*-
a = u"中文"
a_gb2312 = a.encode('gb2312')
print a_gb2312
a_unicode = a_gb2312.decode('gb2312')
assert(a_unicode == a)
a_utf_8 = a_unicode.encode('utf-8')
print a_utf_8
</code>
===== 判断字符串的编码 =====
isinstance(s, str) 用来判断是否为一般字符串 \\
isinstance(s, unicode) 用来判断是否为unicode \\
如果一个字符串已经是unicode了,再执行unicode转换有时会出错(并不都出错) \\
下面代码为将任意字符串转换为unicode
<code python>
def u(s, encoding):
if isinstance(s, unicode):
return s
else:
return unicode(s, encoding)
</code>
===== unicode 与其它编码之间的区别 =====
为什么不所有的文件都使用unicode,还要用GBK,utf-8等编码呢?\\
unicode可以称为抽象编码,也就是它只是一种内部表示,一般不能直接保存。\\
保存到磁盘上时,需要把它转换为对应的编码,如utf-8和utf-16。
===== 其它方法 =====
除上以上的编码方法,在读写文件时还可以使用codecs的open方法在读写时进行转换。
分享到:
相关推荐
这是一个python脚本,该脚本内部通过 moviepy 这个python包实现了简单的视频转码功能,例如你可以将 wmv 视频转码为 mp4 视频。脚本借助了 everything 强大的搜索能力,协助用户快速的搜索和定位视频文档,然后与...
《EBCDID公共转码器及转码模拟器的实现》是一份关于软件工程课程设计的报告,主要探讨了如何构建一个EBCDIC(Extended Binary Coded Decimal Interchange Code,扩展二进制码十进制交换码)到ASCII或其他编码格式的...
Python结合FFmpeg库进行视频转码是一个常见的任务,尤其在处理多媒体数据时。FFmpeg是一个强大的跨平台命令行工具,用于处理音频和视频文件。它提供了丰富的功能,包括转换、编码、解码、分割、合并等多种操作。在...
假冒历史Python已转码,可与HAP-Python附件类一起使用。 基于的出色工作。 没有外部持久性数据(例如Google驱动器等),只有本地存储({'storage':'fs'}-您的本地文件) 每天都会清除持久性数据通过将“房间”,...
本文详细总结了python编码。分享给大家供大家参考,具体如下: 【所谓unicode】 unicode是一种类似于符号集的抽象编码,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。也就是它只是一种内部...
标题中的“Python-支持转码和字幕的原生LinuxChromecastGUI”指的是一个用Python编程语言开发的,专为Linux系统设计的图形用户界面(GUI)应用程序,该程序能够与Google Chromecast设备进行交互,并且具备视频转码和...
比如,若要将某个String对象s从gbk内码转换为UTF-8,可以如下操作 s.decode(‘gbk’).encode(‘utf-8′) 可是,在实际开发中,我发现,这种办法经常会出现异常: UnicodeDecodeError: ‘gbk’ codec can’t decode ...
Python 操作 FFmpeg 对摄像头 RTSP 流进行自动转码 本文档旨在解决公司项目中遇到的问题,即将几个景点的监控摄像头在安卓机顶盒和 AVB 中间件机顶盒上做网络直播播放。为解决该问题,提出了使用中间服务器配置开源...
【标题】"基于Python实现QQ音乐音频批量转码(可执行文件)"涉及到的主要知识点是音频文件格式转换,特别是从QQ音乐下载的音频文件的处理。在这个项目中,使用了Python编程语言,以及一些外部工具,如ffmpeg和um.exe...
对已经上传到七牛的音频发起异步转码操作 实例为flac无损文件转化为/mp3/ab/320k/ar/44100/acodec/
这个转码器可以接受输入文件和输出文件的路径以及源编码和目标编码作为参数,然后使用Python的`codecs`模块进行转码操作。`codecs`模块提供了一系列的编码和解码器,可以处理多种编码格式。 ```python import ...
我们的思路是,设定一个文件夹存放源视频文件,python读取该文件夹下的全部文件,并对文件通过ffmpeg进行分析,根据需要,修改目标文件的编码、分辨率等等,调用ffmpeg转换。 我这次的需求是,我家液晶电视只支持...
基于Python实现的一款轻量、强大、好用的视频处理软件,可缩视频、转码视频、倒放视频、合并片段、根据字幕裁切片段等等.zip一款轻量、强大、好用的视频处理软件。它是一个轻量的工具,而不是像 Davinci Resolve、...
Python 语言的语法简单快捷,但是转码/编码的总让人头痛不已,特别是涉及到文件是二进制的情况下,本人在用Python读取二进制文件的时候遇到了不能转换的问题,查阅了许多网站,无论是大家建议的encode/decode,还是...
一个基于 Python 的软件,用于对视频进行转码并将文件上传到远程服务器或 S3 存储桶 ##Usage ~$ python transcoder.py -h 用法:transcoder.py [-h] -in INPUT [-out OUTPUT] [-r] [-t] [-up] [-via {ftp,s3}] [ -...
总的来说,这个Python项目或库专注于SSRF漏洞的利用和测试,包括对内网地址的模糊测试、IPv4/IPv6的支持、IP地址转码以及DNS记录污染的自动化处理。对于网络安全研究人员和渗透测试人员来说,这是一个有价值的工具,...
python下载音频并转码
这是一个简单的Python脚本,用于将3D打印文件转换为LDraw格式文件。 然后,您可以像使用您喜欢的LDraw查看器或CAD程序中的任何其他零件一样使用该零件。 用法: > python stlToDat.py input_file.stl output_file...
Python (.py) JavaScript (.js) Java (.java) C/C++ (.c, .cpp, .h) HTML (.html, .htm) CSS (.css) 其他编程语言的源代码文件 配置文件 JSON (.json) YAML (.yaml, .yml) XML (.xml) INI (.ini) Properties (....
# Base64转码,编码要求UTF-8 xml = base64.b64encode(xml.encode('utf8')) ``` - 需要注意的是,这里的`xml`变量应该包含符合接口要求的有效XML数据。 - `base64.b64encode()`函数将字符串转换为Base64格式。...