浅谈python中str字符串和unicode对象字符串的拼接问题

作者:Joy_Shen 时间:2022-03-27 22:00:32 

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文件中读入的。

来源:https://blog.csdn.net/index20001/article/details/78974814

标签:python,str,unicode
0
投稿

猜你喜欢

  • 简单介绍利用TK在Python下进行GUI编程的教程

    2023-01-05 21:24:25
  • python小项目之五子棋游戏

    2022-07-12 06:24:23
  • python os模块在系统管理中的应用

    2022-12-17 04:37:23
  • Ext2.0.2经典的一个JS组件(带EXT中文手册)

    2009-04-13 12:24:00
  • Python 相对路径报错:"No such file or directory"'原因及解决方法

    2021-08-12 05:34:00
  • python matplotlib.pyplot.plot()参数用法

    2023-07-13 17:39:48
  • 简单介绍各种浏览器中的本地存储方法

    2012-04-26 16:37:34
  • php的RSA加密解密算法原理与用法分析

    2023-07-13 11:27:14
  • 解决python 读取excel时 日期变成数字并加.0的问题

    2021-07-11 18:53:41
  • Selenium自动化测试工具使用方法汇总

    2022-02-10 16:26:21
  • 用python记录运行pid,并在需要时kill掉它们的实例

    2023-07-31 17:30:18
  • python中的argparse基本用法(使用步骤)

    2023-06-12 20:01:36
  • Python实现七彩蟒蛇绘制实例代码

    2022-04-28 20:03:37
  • 致Python初学者 Anaconda入门使用指南完整版

    2021-09-08 04:48:36
  • ASP 自动采集实现代码

    2011-03-07 11:17:00
  • 十行Python代码实现文字识别功能

    2024-01-01 14:55:09
  • python+Matplotlib 绘制带置信区间的折线图

    2022-04-29 06:23:40
  • Div+CSS布局入门教程

    2007-09-13 12:52:00
  • js检查全角字符正则表达式[\\uFE30-\\uFFA0]

    2008-10-30 12:39:00
  • javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)

    2023-08-18 20:01:36
  • asp之家 网络编程 m.aspxhome.com