浅谈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中的array数组模块相关使用
Jul 05 Python
django 创建过滤器的实例详解
Aug 14 Python
详解Django的model查询操作与查询性能优化
Oct 16 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
django 控制页面跳转的例子
Aug 06 Python
Python Opencv提取图片中某种颜色组成的图形的方法
Sep 19 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
python 字典item与iteritems的区别详解
Apr 25 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
Jun 24 Python
Python连接Impala实现步骤解析
Aug 04 Python
如何Python使用re模块实现okenizer
Apr 30 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
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
php批量修改表结构实例
2017/05/24 PHP
PHP基于SimpleXML生成和解析xml的方法示例
2017/07/17 PHP
PHP INT类型在内存中占字节详解
2019/07/20 PHP
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
关于在mongoose中填充外键的方法详解
2017/08/14 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
深入浅出学习python装饰器
2017/09/29 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python Django框架模板渲染功能示例
2019/11/08 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
python scatter函数用法实例详解
2020/02/11 Python
详解Anaconda 的安装教程
2020/09/23 Python
HTML5输入框下拉菜单功能的示例代码
2020/09/08 HTML / CSS
超市国庆节促销方案
2014/02/20 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
期末学生评语大全
2014/04/24 职场文书
分公司负责人任命书
2014/06/04 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
2015年市场部工作总结
2015/04/30 职场文书
阿甘正传观后感
2015/06/01 职场文书
发票退票证明
2015/06/24 职场文书
2015小学新教师个人工作总结
2015/10/14 职场文书
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫