python unicode 和 str 类型的关系
python (2.X)在进行 运行时候字符串运算的时候, 分为两种类型 str, unicode
前者是 二进制的形式进行对字符串的保存,
后者是 以unicode的方式进行保存, 一般的工作方式为:
str -> decode() -> unicode ->encode() -> str, 在所有的运行时都为unicode是一个良好的习惯, 一般来说系统的库都是支持 unicode(个别除外:csv等)。 而且第三方的库也是支持的。 只有在将数据保存到文件,数据库等其他的外部的时候,需要将其转化成str 的byte形式, 这时候需要提供 编码格式 常用的为 utf-8, 中文gbk也可以。 有一个必须要注意的问题是, 还有一种叫做 string_escape 或者是 utf-escape的编码, 是将编码后的str以 字符串的形式进行保存, 比如 :
>>> u'中文'
u'\u4e2d\u6587'
>>> u'中文'.encode('utf-8')
'\xe4\xb8\xad\xe6\x96\x87'
>>> u'中文'.encode('utf-8').encode('string_escape')
'\\xe4\\xb8\\xad\\xe6\\x96\\x87'
'\\xe4\\xb8\\xad\\xe6\\x96\\x87' 和 '\xe4\xb8\xad\xe6\x96\x87' 字符在进行输出到控制台的时候 效果是一样的, 一般看不出来, 实际上他们是不等的, 所有需要在使用的时候 进行decode('string_escape'') 才能为 正常的str的 字符串, 而 string_escape是大多数 日志库输出的格式,所以在进行转化的时候,需要将其转化回去
python unicode 和 str 类型的关系的更多相关文章
- Python 3之str类型、string模块学习笔记
		Windows 10家庭中文版,Python 3.6.4, Python 3.7官文: Text Sequence Type — str string — Common string operatio ... 
- Python Unicode  and str
		http://stackoverflow.com/questions/18034272/python-str-vs-unicode-types unicode is a character set. ... 
- python基础-字符串(str)类型及内置方法
		字符串-str 用途:多用于记录描述性的内容 定义方法: # 可用'','''''',"","""""" 都可以用于定义 ... 
- python unicode to str and str to unicode
		@staticmethod def unicode2str(p_unicode): v = p_unicode.encode('unicode-escape').decode('string_esca ... 
- python2 中 unicode 和 str 之间的转换及与python3 str 的区别
		在python2中字符串分为unicode 和 str 类型 Str To Unicode 使用decode(), 解码 Unicode To Str 使用encode(), 编码 返回数据给前端时需 ... 
- [转]Python中的str与unicode处理方法
		早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ... 
- Python中的str与unicode处理方法
		Python中的str与unicode处理方法 2015/03/25 · 基础知识 · 3 评论· Python 分享到:42 原文出处: liuaiqi627 的博客 python2.x中处理 ... 
- python中对象、类型和元类之间的关系
		在python中对象.类型和元类构成了一个微妙的世界. 他们有在这个世界里和平共处,相辅相成.它们遵循着几条亘古不变的定律: 1.python中无处不对象 2.所有对象都有三种特性:id.类型.值 3 ... 
- PYTHON编码处理-str与Unicode的区别
		一篇关于STR和UNICODE的好文章 整理下python编码相关的内容 注意: 以下讨论为Python2.x版本, Py3k的待尝试 开始 用python处理中文时,读取文件或消息,http参数等等 ... 
随机推荐
- WebStorm调试node.js
			直接上图: 
- Oracle数据库如何创建DATABASE LINK?
			Oracle数据库如何创建DATABASE LINK? 2011-08-09 14:54 taowei20061122 CSDN博客 http://blog.csdn.net/taowei20061 ... 
- Ubuntu Install Java
			http://linuxpilot.com/ubuntu-java class HelloWorld{public static void main(String[]arg){System.out.p ... 
- 浅谈Extjs radiogroup change事件与items下的checked属性
			在使用Extjs制作crud时,由于添加和修改界面的高度相似,使用了相同的row字段. 在角色字段中使用了change监听事件,用于动态的无效化权限分配字段,因为权限分配界面默认没有隐藏,设定了che ... 
- Linux学习 :SPI通讯协议
			SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的.SPI接口主要应用在E ... 
- 1、C#基础:变量、运算符、分支、循环、枚举、数组、方法    <转>
			转自:海盗船长 链接:http://www.cnblogs.com/baidawei/p/4701504.html#3241882 C#..Net以及IDE简介 一.什么是.Net? .Net指 .N ... 
- tar命令的使用
			tar格式,会打包成一个文件,可以对多个目录,或者多个文件进行打包 tar命令只是打包,不会压缩,打包前后大小是一样的 tar命令 -c //打包 -x //解压 -f //指定文件 ... 
- sql语句格式化数字(前面补0)、替换字符串
			以下是详细分析: 1.select power(10,3)得到1000(即:10的3次方) 2.select cast(1000+33 as varchar) 将1000转换类型(即:将int转化成v ... 
- html之页面元素印射
			首先我遇到了一个问题,尽管不是搞前端开发的但事情交到了我这里就有必要去解决. 而这个问题就是我在这边文本框输入的内容要显示在另一个文本框中其实也是非常简单.但是对于初出茅庐的新手来说就有可能会难倒他. ... 
- mvc 导入,导出excel
			最近主要做导入excel 在网上查询了代码 public FileResult DownLoadExcelJiZuChaXunGenRenXiaoFeiJiLu() { DataTable dt = ... 
