浅谈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实现windows下模拟按键和鼠标点击的方法
Mar 13 Python
编写Python CGI脚本的教程
Jun 29 Python
浅谈编码,解码,乱码的问题
Dec 30 Python
Python实现Youku视频批量下载功能
Mar 14 Python
python实时监控cpu小工具
Jun 21 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
Python输出\u编码将其转换成中文的实例
Dec 15 Python
Python根据成绩分析系统浅析
Feb 11 Python
python对文件目录的操作方法实例总结
Jun 24 Python
Python数据存储之 h5py详解
Dec 26 Python
python小程序基于Jupyter实现天气查询的方法
Mar 27 Python
如何使用Python提取Chrome浏览器保存的密码
Jun 09 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+MySQL 制作简单的留言本
2009/11/02 PHP
遍历指定目录下的所有目录和文件的php代码
2011/11/27 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
jQuery插件MixItUp实现动画过滤和排序
2015/04/12 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
微信小程序 如何引入外部字体库iconfont的图标
2018/01/31 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
elementUI select组件value值注意事项详解
2019/05/29 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
layer实现登录弹框,登录成功后关闭弹框并调用父窗口的例子
2019/09/11 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
原生JS实现天气预报
2020/06/16 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
yy婚礼主持词
2014/03/14 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
爱情保证书大全
2014/04/29 职场文书
针对吵架老公保证书
2015/05/08 职场文书
计算机教师工作总结
2015/08/13 职场文书
财务人员入职担保书
2015/09/22 职场文书
vue3中provide && inject的使用
2021/07/01 Vue.js
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS