Python中Unicode字符串(字符串编码问题)

  因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母 A 的编码是65,小写字母 z 的编码是122。

如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。

类似的,日文和韩文等其他语言也有这个问题。为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。

Unicode通常用两个字节表示一个字符,原有的英文编码从单字节变成双字节,只需要把高字节全部填为0就可以。

因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的。

Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

print u'中文'
中文

注意: 不加 u ,中文就不能正常显示。

Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效:

转义:

u'中文\n日文\n韩文'

多行:

u'''第一行
第二行'''

raw+多行:

ur'''Python的Unicode字符串支持"中文",
"日文",
"韩文"等多种语言'''

如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

# -*- coding: utf-8 -*-

目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。

# -*- coding: utf-8 -*- 和 u'...',只能同时存在一个,前者用的较多。

转载于:https://www.cnblogs.com/Bro-Young/p/7695825.html

Python中Unicode字符串(字符串编码问题)相关推荐

  1. python中abc属于字符串吗_在Python中,字符串s = 'abc',那么执行表达式s+'d'之后,s的打印结果是( )。...

    [单选题]当知道条件为真,想要程序无限执行直到人为停止的话,可以需要下列哪个选项? [单选题]Python3解释器执行 for i,v in enumerate([0,1,2],2):print(i, ...

  2. Python 中的反转字符串:reversed()、切片等

    摘要:以相反的顺序反转和处理字符串可能是编程中的一项常见任务.Python 提供了一组工具和技术,可以帮助您快速有效地执行字符串反转. 本文分享自华为云社区<Python 中的反转字符串:rev ...

  3. Python中列表和字符串的反转

    要求: 原列表:[13, 30, 42, 85, 9, 45] 反转后的列表:[45, 9, 85, 42, 30, 13] 原字符串:hello 反转后的字符串:olleh Python现成的反转功 ...

  4. 手写Python中列表和字符串的反转

    要求: 原列表:[13, 30, 42, 85, 9, 45] 反转后的列表:[45, 9, 85, 42, 30, 13] 原字符串:hello 反转后的字符串:olleh Python现成的反转功 ...

  5. Python中的原始字符串

    Python中的原始字符串以r开头,使用原始字符串可以避免字符串中转义字符带来的问题. 其实所谓原始字符串,都是给人看的.对于计算机来说,没有什么原始字符串的概念.只是输出给人看的时候,会有一些\n. ...

  6. python判断字符串合法,详解Python判定IP地址合法性的三种方法 python中判断一个字符串是否是IP地址...

    html 中 鼠标放在标签上会显示小手状,其它标签在其他标签上,美工给加了一些样式,鼠标放上去也显示小手状.有哪位大手状样式 有什么不懂的前端问题可以去菜鸟驿站.全都是泡沫,只一刹的花火,所谓的友情, ...

  7. 05、Python中转义字符与字符串

    05.Python中转义字符与字符串操作函数 基于PyCharm 参考Python爬虫编程基础5天速成(2021全新合集)Python入门+数据分析 1.转义字符 2.字符串 单引号字符串: word ...

  8. python中时间戳、字符串之间转换详解

    [转载]python中时间戳.字符串之间转换详解 (2013-04-30 17:36:07) 转载▼ 标签: 转载 原文地址:python中时间戳.字符串之间转换详解作者:doris0920 1)秒数 ...

  9. python与php8-详解Python中Unicode和utf-8

    在Python语言中,Uincode字符串处理一直是一个容易让人迷惑的问题.许多Python爱好者经常因为搞不清Unicode.UTF-8还有其它许许多多的编码之间的区别而大伤脑筋.本文将介绍Unic ...

最新文章

  1. 刚毕业就年薪百万!华为给予八名博士高薪惹争议:值这么多钱吗
  2. java 必备_Java基础必备
  3. 工业物联网时代,这五大职业跻身新热门
  4. Codeforces 758C. Unfair Poll
  5. 解读main()方法中的String[] args
  6. Ten ways to improve the performance of large tables in MySQL--转载
  7. getClass()和.class的区别
  8. startActivityForResult的使用和用法
  9. python 随机数
  10. Office2021中文零售版的离线安装包下载地址合集
  11. 大数据“矿工” 世界上最艰辛的IT人
  12. PHP如何获取用户IP地址
  13. 将Python字符串转换为Int,将Int转换为String
  14. 电子秤查看通道及更改通道方法
  15. Mysql绿色版本安装
  16. U3D特效笔记——沼泽技能
  17. 烧写ARM板----MYS-6ULX
  18. python:操作文档——TXT篇
  19. 如何设置和取消PPT文件的打开密码
  20. 2021级高级语言期末考复盘

热门文章

  1. 流浪在橄榄绿里的思念
  2. NLP 英文文本数据增强
  3. Go语言的iota语法糖
  4. 【蓝桥杯】历届真题 杨辉三角形 (省赛)Java
  5. 超越芯片和AI,硬科技资本为什么越来越“硬核”?
  6. 利用iconfont 配置自己的在线图标库
  7. Apache Camel是个什么玩意?
  8. 使用js实现“别踩白块儿”游戏
  9. Linux下统计某个目录下所有源代码行数的Shell脚本
  10. 游戏中集成unity admob视频广告中文教程