浅谈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编程时利用wxPython来支持多线程的方法
Apr 07 Python
在Python的Flask框架中实现单元测试的教程
Apr 20 Python
Python实现合并字典的方法
Jul 07 Python
Python实现GUI学生信息管理系统
Apr 05 Python
python设定并获取socket超时时间的方法
Jan 12 Python
对python3 sort sorted 函数的应用详解
Jun 27 Python
详解PyTorch中Tensor的高阶操作
Aug 18 Python
Python数据库小程序源代码
Sep 15 Python
python3连接MySQL8.0的两种方式
Feb 17 Python
Numpy中ndim、shape、dtype、astype的用法详解
Jun 14 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
opencv实现图像平移效果
Mar 24 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
php中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
Laravel 5框架学习之表单验证
2015/04/08 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
Javascript中的isNaN函数使用说明
2011/11/10 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
python远程连接MySQL数据库
2019/04/19 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
2020/07/02 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
《青海高原一株柳》教学反思
2014/04/25 职场文书
好的旅游活动方案
2014/08/19 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
接收函
2019/04/22 职场文书
python实现高效的遗传算法
2021/04/07 Python