浅谈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获取GY-85九轴模块信息示例
Dec 05 Python
Python 迭代器工具包【推荐】
May 06 Python
python读取与写入csv格式文件的示例代码
Dec 16 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
python判断一个数是否能被另一个整数整除的实例
Dec 12 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
Mar 05 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
Django处理Ajax发送的Get请求代码详解
Jul 29 Python
python线程join方法原理解析
Feb 11 Python
将labelme格式数据转化为标准的coco数据集格式方式
Feb 17 Python
pygame实现飞机大战
Mar 11 Python
浅谈Selenium 控制浏览器的常用方法
Dec 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
德生9700DX电路分析
2021/03/02 无线电
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php使用session二维数组实例
2014/11/06 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
jQuery的学习步骤
2011/02/23 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
javascript每日必学之封装
2016/02/23 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
微信小程序自定义菜单切换栏tabbar组件代码实例
2019/12/30 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
Python 自动补全(vim)
2014/11/30 Python
Python利用ansible分发处理任务
2015/08/04 Python
实例讲解Python设计模式编程之工厂方法模式的使用
2016/03/02 Python
快速了解Python中的装饰器
2018/01/11 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
python set内置函数的具体使用
2019/07/02 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
Python基础之字符串操作常用函数集合
2020/02/09 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
2020/06/30 Python
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
材料专业大学毕业生自荐书
2014/07/02 职场文书
道路施工安全责任书
2014/07/24 职场文书
2016圣诞节贺卡寄语
2015/12/07 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
如何利用Python实现一个论文降重工具
2021/07/09 Python
DE1107机评
2022/04/05 无线电