浅谈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私有属性和方法实例分析
Jan 15 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
python实现逻辑回归的方法示例
May 02 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
Jan 15 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
python查看模块安装位置的方法
Oct 16 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
Numpy一维线性插值函数的用法
Apr 22 Python
Django通过json格式收集主机信息
May 29 Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 Python
django中ImageField的使用详解
Dec 21 Python
关于PySnooper 永远不要使用print进行调试的问题
Mar 04 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中用文本文件做数据库的实现方法
2008/03/27 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
jQuery点击后一组图片左右滑动的实现代码
2012/08/16 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
基于JavaScript实现选项卡效果
2017/07/21 Javascript
详解vue中v-bind:style效果的自定义指令
2020/01/21 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
Python基于property实现类的特性操作示例
2018/06/15 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
Python使用type动态创建类操作示例
2020/02/29 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
scrapy-splash简单使用详解
2021/02/21 Python
毕业自我评价范文
2013/11/17 职场文书
营销人才自我鉴定范文
2013/12/25 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
辞职信模板(中英文版)
2015/02/27 职场文书
2015年学校体育工作总结
2015/04/22 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
交通安全主题班会
2015/08/12 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python