浅谈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中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 Python
python列表操作实例
Jan 14 Python
python交易记录整合交易类详解
Jul 03 Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 Python
Python values()与itervalues()的用法详解
Nov 27 Python
详解用Python进行时间序列预测的7种方法
Mar 13 Python
Python更换pip源方法过程解析
May 19 Python
如何查看python关键字
Jan 17 Python
python中numpy数组与list相互转换实例方法
Jan 29 Python
Python包argparse模块常用方法
Jun 04 Python
Python中的 Set 与 dict
Mar 13 Python
什么是Python装饰器?如何定义和使用?
Apr 11 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实现读取内存顺序号
2015/03/29 PHP
php简单中奖算法(实例)
2017/08/15 PHP
php回调函数处理数组操作示例
2020/04/13 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
2017/05/18 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
python 执行shell命令并将结果保存的实例
2018/05/11 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
python七夕浪漫表白源码
2019/04/05 Python
python 实现二维列表转置
2019/12/02 Python
python能自学吗
2020/06/18 Python
python实现学生成绩测评系统
2020/06/22 Python
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
报到证丢失证明
2014/01/11 职场文书
大学活动总结格式
2014/04/29 职场文书
应届毕业生求职信范文
2014/05/08 职场文书
学校节能宣传周活动总结
2014/07/09 职场文书
国家税务局干部作风整顿整改措施
2014/09/18 职场文书
2014年科技工作总结
2014/11/26 职场文书
考研英语复习计划
2015/01/19 职场文书
2015年扫黄打非工作总结
2015/05/13 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
Python爬虫基础之爬虫的分类知识总结
2021/05/13 Python
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技