浅谈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中time模块与datetime模块在使用中的不同之处
Nov 24 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
Python实现的txt文件去重功能示例
Jul 07 Python
在Python中,不用while和for循环遍历列表的实例
Feb 20 Python
python对文件目录的操作方法实例总结
Jun 24 Python
python 哈希表实现简单python字典代码实例
Sep 27 Python
使用浏览器访问python写的服务器程序
Oct 10 Python
Python numpy线性代数用法实例解析
Nov 15 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
python 密码学示例——凯撒密码的实现
Sep 21 Python
用Python进行websocket接口测试
Oct 16 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函数
2006/10/09 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
[05:24]TI9采访——教练
2019/08/24 DOTA
Python的subprocess模块总结
2014/11/07 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
Python编程之string相关操作实例详解
2017/07/22 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
下载与当前Chrome对应的chromedriver.exe(用于python+selenium)
2020/01/14 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
Python连接mysql方法及常用参数
2020/09/01 Python
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
制药工程专业个人求职自荐信
2014/01/25 职场文书
董事长秘书工作职责
2014/06/10 职场文书
绘画专业自荐信
2014/07/04 职场文书
优秀会计求职信
2014/07/04 职场文书
公司委托书范本5篇
2014/09/20 职场文书
个人剖析材料范文
2014/09/30 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
《云雀的心愿》教学反思
2016/02/23 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL