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 类型的关系的更多相关文章

  1. Python 3之str类型、string模块学习笔记

    Windows 10家庭中文版,Python 3.6.4, Python 3.7官文: Text Sequence Type — str string — Common string operatio ...

  2. Python Unicode and str

    http://stackoverflow.com/questions/18034272/python-str-vs-unicode-types unicode is a character set. ...

  3. python基础-字符串(str)类型及内置方法

    字符串-str 用途:多用于记录描述性的内容 定义方法: # 可用'','''''',"","""""" 都可以用于定义 ...

  4. python unicode to str and str to unicode

    @staticmethod def unicode2str(p_unicode): v = p_unicode.encode('unicode-escape').decode('string_esca ...

  5. python2 中 unicode 和 str 之间的转换及与python3 str 的区别

    在python2中字符串分为unicode 和 str 类型 Str To Unicode 使用decode(), 解码 Unicode To Str 使用encode(), 编码 返回数据给前端时需 ...

  6. [转]Python中的str与unicode处理方法

    早上被python的编码搞得抓耳挠腮,在搜资料的时候感觉这篇博文很不错,所以收藏在此. python2.x中处理中文,是一件头疼的事情.网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自 ...

  7. Python中的str与unicode处理方法

    Python中的str与unicode处理方法 2015/03/25 · 基础知识 · 3 评论· Python 分享到:42 原文出处: liuaiqi627 的博客    python2.x中处理 ...

  8. python中对象、类型和元类之间的关系

    在python中对象.类型和元类构成了一个微妙的世界. 他们有在这个世界里和平共处,相辅相成.它们遵循着几条亘古不变的定律: 1.python中无处不对象 2.所有对象都有三种特性:id.类型.值 3 ...

  9. PYTHON编码处理-str与Unicode的区别

    一篇关于STR和UNICODE的好文章 整理下python编码相关的内容 注意: 以下讨论为Python2.x版本, Py3k的待尝试 开始 用python处理中文时,读取文件或消息,http参数等等 ...

随机推荐

  1. hihoCoder#1121

    刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正. 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 大家好,我 ...

  2. Remove openjdk in Ubuntu/Configure jdk and running adb in 64-bit Ubuntu

    sudo apt-get autoremove openjdk-7-jre sudo apt-get purge openjdk* java -version No openjdk available ...

  3. html canvas 骰子1

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. swift block

    let addWaterVC = MLSelectPhotoPickerViewController() addWaterVC.callBack = { (AnyObject) -> () in ...

  5. Python学习路程day18

    Python之路,Day18 - Django适当进阶篇 本节内容 学员管理系统练习 Django ORM操作进阶 用户认证 Django练习小项目:学员管理系统设计开发 带着项目需求学习是最有趣和效 ...

  6. java filechannel大文件的读写

    java读取大文件 超大文件的几种方法 转自:http://wgslucky.blog.163.com/blog/static/97562532201332324639689/   java 读取一个 ...

  7. fushioncharts 使用教程要点---使用JSON数据方式

    1.建立图表步骤: A.下载fushionChart,引入FusionCharts.js和FusionChartsExportComponent.js文件 B.建立图表对象 var chart1 =  ...

  8. 动态生成tr,并将其下控件的值拼接后传到后台并保存

    有两个表(主表和子表),现在需要根据主表某一个字段动态的生成记录(一条记录就一个tr),然后再讲tr下控件的各个值取出来,传到后台,并保存到子表. html代码: <!--#for(Record ...

  9. 关于 jsp 解析特殊字符的问题

    在项目中了 使用了一个UI封装好 的插件 经测试了可以返回一些特殊字符,但是因为是特殊字符,导致了jsp解析出错,使用了Jquery来添加了dom结构,添加完之后,Ui控件进行初始化的时候报错了,原因 ...

  10. 10大白帽黑客专用的 Linux 操作系统

    原文出处: Irshad Pathoor   译文出处:Linux中国   欢迎分享原创到伯乐头条 今天让我们来介绍十个黑客专用的操作系统,它们被白帽黑客用作渗透测试的工具.这里我把 Kali Lin ...