学习使用编码和解码
2017-07-31 21:29
169 查看
目的:在处理字符时,如果编码和解码处理不当,就会出现乱码。
环境:ubuntu 16.04 python 3.5.2
情景:因为工作,需要写了一个自动接收邮件并针对特定内容导出到表格的脚本,但收到的邮件源信息一般都是字节信息,需要解码处理,即decode, 如果要发送邮件就需要使用编码encode。
函数:
str.decode('解码方式')
str.encode('编码方式')
这里decode接收字符串,并以指定的解码方式解码,如utf-8或gb2312,encode也是相同的操作。如果给的编码或解码方式错误,则会弹出UnicodeDecodeError:错误,可以用try---except来捕捉处理。
以下:
再写一点枯燥的笔记:
字符编码,早期有美国人发明,定制了ASCII编码,只包含大小写字母、数字和一些符号,这样对其他语言的支持明显不够,中文一般需要两个字节,且不能与ASCII冲突,所以定制了GB2312用于中文,其他国家也有自己的编码,为了统一,Unicode应运而生,包含了所以不同的编码,但是在表示ACSII字符是多加了空的字节,浪费存储和传输,于是有了UTF-8,常见英文用一个字节,汉字通常用3个(Unicode用2个),兼容ASCII。现在传输和存储用UTF-8,内存和服务用Unicode。
参看资料:
第三方博客
环境:ubuntu 16.04 python 3.5.2
情景:因为工作,需要写了一个自动接收邮件并针对特定内容导出到表格的脚本,但收到的邮件源信息一般都是字节信息,需要解码处理,即decode, 如果要发送邮件就需要使用编码encode。
函数:
str.decode('解码方式')
str.encode('编码方式')
这里decode接收字符串,并以指定的解码方式解码,如utf-8或gb2312,encode也是相同的操作。如果给的编码或解码方式错误,则会弹出UnicodeDecodeError:错误,可以用try---except来捕捉处理。
以下:
def decode_str(_str): try: _change_str = _str.decode('gb2312') except UnicodeDecodeError: _change_str = _str.decode('utf-8')一般微软中文操作系统都是gb2312的。
再写一点枯燥的笔记:
字符编码,早期有美国人发明,定制了ASCII编码,只包含大小写字母、数字和一些符号,这样对其他语言的支持明显不够,中文一般需要两个字节,且不能与ASCII冲突,所以定制了GB2312用于中文,其他国家也有自己的编码,为了统一,Unicode应运而生,包含了所以不同的编码,但是在表示ACSII字符是多加了空的字节,浪费存储和传输,于是有了UTF-8,常见英文用一个字节,汉字通常用3个(Unicode用2个),兼容ASCII。现在传输和存储用UTF-8,内存和服务用Unicode。
参看资料:
第三方博客
相关文章推荐
- mencoder mplayer 命令的使用(安装mplayer 也会安装这个东西)视频音频解码编码转码
- 字符、字符串 、格式化 、编码、解码 CLR学习第十一课
- java.net.URLEncoder和java.net.URLDecoder的使用和js 中编码(encode)和解码(decode)方法
- 基于netty的项目中使用protobuf,巧妙定义proto完成不同消息的编码和解码处理
- 使用CrpytAPI编码和解码PKCS#7消息
- 使用PHP对图片进行base64编码和解码
- 使用C#对Google和Baidu中文关键词编码解码
- 使用GTMBase64编码解码字符串
- Android使用json对中文进行编码 使用php接收时进行解码
- js编码、解码函数介绍及其使用示例
- Base64系列第二篇 python中使用Base64编码解码
- 使用openssl进行base64编码 解码
- 视频编解码学习之四:视频处理及编码标准
- (转载)视频编解码学习之四:视频处理及编码标准
- [易忘区] 编码解码 -- 使用System.Text.Encoder 进行字符块编码为字节序列
- 视频编解码学习之四:视频处理及编码标准
- Mac平台命令行下使用base64对图片编码和解码
- js编码、解码函数介绍及其使用示例
- 【AJAX学习笔记】JSON数据编码解码技术
- 视频编解码学习之四:视频处理及编码标准