浅谈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实现微信公众平台自定义菜单实例
Mar 20 Python
利用Python的Django框架中的ORM建立查询API
Apr 20 Python
python使用socket进行简单网络连接的方法
Apr 29 Python
收藏整理的一些Python常用方法和技巧
May 18 Python
总结python爬虫抓站的实用技巧
Aug 09 Python
Python进程间通信之共享内存详解
Oct 30 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
通过实例了解python property属性
Nov 01 Python
Python如何实现定时器功能
May 28 Python
Python通过字典映射函数实现switch
Nov 06 Python
Window10上Tensorflow的安装(CPU和GPU版本)
Dec 15 Python
使用Python封装excel操作指南
Jan 29 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
php截取字符串函数分享
2015/02/02 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
javascript radio 联动效果
2009/03/04 Javascript
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
jquery蒙版控件实现代码
2010/12/08 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
ES6生成器用法实例分析
2017/04/10 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
跟老齐学Python之Import 模块
2014/10/13 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
python 中字典嵌套列表的方法
2018/07/03 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
python每5分钟从kafka中提取数据的例子
2019/12/23 Python
python实现移动木板小游戏
2020/10/09 Python
开普敦通行证:Cape Town Pass
2019/07/18 全球购物
经典c++面试题三
2015/07/08 面试题
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
五一劳动节活动记录
2014/03/23 职场文书
自我鉴定总结
2014/03/24 职场文书
捐款倡议书
2014/04/14 职场文书
学风建设演讲稿
2014/09/12 职场文书
三方股东合作协议书范本
2014/09/28 职场文书