浅谈python中str字符串和unicode对象字符串的拼接问题


Posted in Python onDecember 04, 2018

str字符串

s = '中文'  # s: <type 'str'>

s是个str对象,中文字符串。存储方式是字节码。字节码是怎么存的:

如果这行代码在python解释器中输入&运行,那么s的格式就是解释器的编码格式;

如果这行代码是在源码文件中写入、保存然后执行,那么解释器载入代码时就将s初始化为文件指定编码(比如py文件开头那行的utf-8);

unicode对象字符串

unicode是一种编码标准,具体的实现可能是utf-8,utf-16,gbk等等,这就是中文字符串和unicode有密切关系的原因。

python内部使用两个字节存储一个unicode对象(unicode对象并不只能是字符串,这两个字节还可以存其他内容),为什么要用unicode而不用str呢,因为中文转码的缘故,因为unicode的优点是便于跨平台。

s1 = u'中文'     # s1: <type 'unicode'>
s2 = unicode('中文', 'utf-8') # utf8是在指定解码方式, s2: <type 'unicode'>

str字符串和unicode字符串拼接

只要注意正确的decode、encode方式,统一编码后就能顺利地拼接了。

# -*- coding: utf-8 -*-
 
s1 = '中文'
s2 = u'你好'
print s1 + unicode(s2, 'utf-8') # 中文你好
print s1 + s2.decode('utf-8')  # 中文你好
print s1.encode('utf-8') + s2  # 中文你好
 
print type(s1)     # <type 'str'>
print type(s2)     # <type 'unicode'>
print type(s1.decode('utf-8')) # <type 'unicode'>
print type(s2.encode('utf-8')) # <type 'str'>

对于str要注意当前环境编码方式,也许是控制台那种设定好了的,也许是你自己在代码中指定的。(看你的代码是在哪里敲的了)

对于unicode对象,一般都是decode得到的,像直接【u'你好'】这种其实不是很常见,所以要注意字符串来源是什么编码,比如从gbk文件或utf8文件中读入的。

以上这篇浅谈python中str字符串和unicode对象字符串的拼接问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
使用Python的Twisted框架编写非阻塞程序的代码示例
May 25 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 Python
python 处理微信对账单数据的实例代码
Jul 19 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
Feb 18 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
3种适用于Python的疯狂秘密武器及原因解析
Apr 29 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 Python
Python装饰器的练习题
Nov 23 Python
Python推导式简单示例【列表推导式、字典推导式与集合推导式】
Dec 04 #Python
对web.py设置favicon.ico的方法详解
Dec 04 #Python
对python 命令的-u参数详解
Dec 03 #Python
python 接收处理外带的参数方法
Dec 03 #Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 #Python
浅谈python脚本设置运行参数的方法
Dec 03 #Python
Linux 修改Python命令的方法示例
Dec 03 #Python
You might like
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
javascript引用类型之时间Date和数组Array
2015/08/27 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
Python的多态性实例分析
2015/07/07 Python
Python数据结构之翻转链表
2017/02/25 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
学徒工职责
2014/03/06 职场文书
家长会学生演讲稿
2014/04/26 职场文书
承诺书范文
2014/06/03 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
学习心理学的体会
2014/11/07 职场文书
期末考试复习计划
2015/01/19 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
机关单位保密工作责任书
2015/05/11 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
《怀念母亲》教学反思
2016/02/19 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
简单聊聊Golang中defer预计算参数
2022/03/25 Golang