浅谈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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
利用Python实现命令行版的火车票查看器
Aug 05 Python
python九九乘法表的实例
Sep 26 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python面向对象之类的内置attr属性示例
Dec 14 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
python机器学习库xgboost的使用
Jan 20 Python
Flask模板引擎Jinja2使用实例
Apr 23 Python
python实现简单的名片管理系统
Apr 26 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模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
学习php中的正则表达式
2014/08/17 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
微信公众平台开发教程(六)获取个性二维码的实例
2016/12/02 Javascript
bootstrap组件之导航组件使用方法
2017/01/19 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
Bootstrap fileinput组件封装及使用详解
2017/03/10 Javascript
underscore之Chaining_动力节点Java学院整理
2017/07/10 Javascript
javascript流程控制语句集合
2017/09/18 Javascript
JavaScript实现获取select下拉框中第一个值的方法
2018/02/06 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
js单线程的本质 Event Loop解析
2019/10/29 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
Python闭包函数定义与用法分析
2018/07/20 Python
详解django中使用定时任务的方法
2018/09/27 Python
Python实现FM算法解析
2019/06/18 Python
python re模块常见用法例举
2021/03/01 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
中英文求职信范文
2014/01/27 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
企业宣传标语
2014/06/09 职场文书
募捐感谢信
2015/01/22 职场文书
送达通知书
2015/04/25 职场文书
退税申请报告怎么写
2015/05/18 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
房地产置业顾问工作总结
2015/10/23 职场文书