python中decode和encode的区别
#-*-coding:utf-8
import sys
'''
*首先要搞清楚,字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,
即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换成unicode编码。
encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode('gb2312'),表示将unicode编码的字符串str2转换成gb2312编码。
总得意思:想要将其他的编码转换成utf-8必须先将其解码成unicode然后重新编码成utf-8,它是以unicode为转换媒介的
如:s='中文'
如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需要先用
decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件。
如下:
s.decode('utf-8').encode('utf-8')
decode():是解码
encode()是编码
isinstance(s,unicode):判断s是否是unicode编码,如果是就返回true,否则返回false* '''
'''
s='中文'
s=s.decode('utf-8') #将utf-8编码的解码成unicode
print isinstance(s,unicode) #此时输出的就是True
s=s.encode('utf-8') #又将unicode码编码成utf-8
print isinstance(s,unicode) #此时输出的就是False
'''
print sys.getdefaultencoding() s='中文'
if isinstance(s,unicode): #如果是unicode就直接编码不需要解码
print s.encode('utf-8')
else:
print s.decode('utf-8').encode('gb2312') print sys.getdefaultencoding() #获取系统默认的编码
reload(sys)
sys.setdefaultencoding('utf8') #修改系统的默认编码
print sys.getdefaultencoding()
7
python中decode和encode的区别的更多相关文章
- Python中decode与encode的区别
摘抄: 字符串在Python内部的表示是Unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符解码(decode)成unicode,再从unicode编码 ...
- Python中type与Object的区别
Python中type与Object的区别 在查看了Python的API后,总算明白了.现在总结如下: 先来看object的说明: Python中关于object的说明很少,甚至只有一句话: clas ...
- Python中生成器和迭代器的区别(代码在Python3.5下测试):
https://blog.csdn.net/u014745194/article/details/70176117 Python中生成器和迭代器的区别(代码在Python3.5下测试):Num01–& ...
- Python中的is和==的区别,==判断值是否相等,is判断地址是否一致
Python中的is和==的区别 Python中的对象包含三要素:id.type.value. 其中id用来唯一标示一个对象,type标识对象的类型,value是对象的值. is判断的是a对象是否就是 ...
- 基于python中staticmethod和classmethod的区别(详解)
例子 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 class A(object): def foo(self,x): print "executing foo ...
- Python中send()和sendall()的区别
Python中send()和sendall()的区别 估计每个学习Python网络编程的人,都会遇到过这样的问题: send()和sendall()到底有什么区别? send()和sendall()原 ...
- Python中的is和==的区别
Python中的is和==的区别 1. is 是比较内存地址id() a = "YongJie" b = "YongJie" print(id(a)) #233 ...
- python中_new_()与_init_()的区别
__new__方法的使用 只有继承于object的新式类才能有__new__方法,__new__方法在创建类实例对象时由Python解释器自动调用,一般不用自己定义,Python默认调用该类的直接父类 ...
- python中break和continue的区别
python中break和continue的区别 break和continue 1.break 意思为结束循环 例: i = 0 while i<10: i+=1 if ...
随机推荐
- uni/微信小程序 - 使用外部字体
字体图标/字体仅支持网络css路径(也就是不支持本地路径) 参考于:https://blog.csdn.net/u013451157/article/details/79825740
- VMware vCenter Orchestrator
使用范例: VMware Automation with vCenter Orchestrator http://www.rodmach.com/blog/?p=46 直接从 VSPHERE CLIE ...
- FasterRcnn训练数据集参数配置
说明:本博文假设你已经做好了自己的数据集,该数据集格式和VOC2007相同.做好数据集后,我们开始训练,下面是训练前的一些修改.本文来自:http://www.lai18.com/content/25 ...
- Python文本爬虫实战
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7019950.html 一:流程 目标:爬取目标网页的图片 1:获取网页源码 2:用Python读取源码 3: ...
- Spring学习笔记六:Spring整合Hibernate
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6785323.html 前言:整合概述 Spring整合Hibernate主要是把Hibernate中常用的S ...
- [nQSError: 37001]Could not connect to the Oracle BI Server Instance
[nQSError: 37001]Could not connect to the Oracle BI Server Instance 使用本机的OBIEE Client 的Oracle BI管理工具 ...
- ps 如何将视频转换成gif?
1.情景展示 视频转gif如何实现? 2.解决方案 通过ps可以实现. 打开ps-->打开视频文件: 功能介绍: 选中图层--> 修改持续时间,可以控制显示的内容: 修改播放速度,可以 ...
- 7、redis之使用spring集成commons-pool来操作常见数据类型
环境的搭建参见:http://www.cnblogs.com/yangzhilong/p/4729857.html 下面直接贴具体的测试代码: package com.yzl; import java ...
- mysql计算时间差值,单位分钟数
TIMESTAMPDIFF(MINUTE, 开始时间, 结束时间) as 时间差(单位:分钟数) TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr ...
- LR函数基础(一)(二)
LR函数基础(一) 函数用到:web_reg_find(). lr_log_message(). lr_eval_string().strcmp().atoi() Action(){ web_r ...