字符串编码转换

最早的字符串编码是ASCII码,只包括0-9的数字,A-Z和a-z的字母以及空格、制表符等其他符号共256个字符。

随着信息技术的发展,各国的文字都需要进行编码,因此就出现了 GBK/GB2312 编码以及 UTF-8 编码。

在Python3中,默认采用UTF-8编码。

在Python中,有两种常用的字符串类型,一种是str,一种是bytes。

这两种类型的字符串不能拼接在一起使用,如果我们需要在网络上传输或者保存到磁盘上的话,就需要将str转换为bytes。

要实现这个转换,就需要使用 encode() 方法。

1、encode()

str.encode([encoding = "utf-8"][, errors = "strict"])

encode(...)
    S.encode(encoding='utf-8', errors='strict') -> bytes
    
    Encode S using the codec registered for encoding. Default encoding
    is 'utf-8'. errors may be given to set a different error
    handling scheme. Default is 'strict' meaning that encoding errors raise
    a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and
    'xmlcharrefreplace' as well as any other name registered with
    codecs.register_error that can handle UnicodeEncodeErrors.

例如:

str1 = "人生若只如初见"
byte1 = str1.encode("GBK")  # 采用GBK编码进行转换
byte2 = str1.encode("utf-8")  # 采用utf-8编码进行转换
print("原字符串:", str1)
print("GBK转换:", byte1)
print("utf-8转换:", byte2)
>>>
原字符串: 人生若只如初见
GBK转换: b'\xc8\xcb\xc9\xfa\xc8\xf4\xd6\xbb\xc8\xe7\xb3\xf5\xbc\xfb'
utf-8转换: b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa5\xe5\x8f\xaa\xe5\xa6\x82\xe5\x88\x9d\xe8\xa7\x81'

2、encode()

bytes.decode([encoding = "utf-8"][, errors = "strict"])

decode(self, /, encoding='utf-8', errors='strict')
    Decode the bytes using the codec registered for encoding.
    
    encoding
      The encoding with which to decode the bytes.
    errors
      The error handling scheme to use for the handling of decoding errors.
      The default is 'strict' meaning that decoding errors raise a
      UnicodeDecodeError. Other possible values are 'ignore' and 'replace'
      as well as any other name registered with codecs.register_error that
      can handle UnicodeDecodeErrors.

例如:

str1 = "人生若只如初见"
byte1 = str1.encode("GBK")  # 采用GBK编码进行转换
byte2 = str1.encode("utf-8")  # 采用utf-8编码进行转换
print("原字符串:", str1)
print("GBK转换:", byte1)
print("utf-8转换:", byte2)str2 = byte1.decode("GBK")  # 解码
str3 = byte2.decode("utf-8")  # 解码
print("解码后:", str2)
print("解码后:", str3)
>>>
原字符串: 人生若只如初见
GBK转换: b'\xc8\xcb\xc9\xfa\xc8\xf4\xd6\xbb\xc8\xe7\xb3\xf5\xbc\xfb'
utf-8转换: b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa5\xe5\x8f\xaa\xe5\xa6\x82\xe5\x88\x9d\xe8\xa7\x81'
解码后: 人生若只如初见
解码后: 人生若只如初见

需要注意的是,使用什么格式进行编码,就必须使用该格式进行解码。

str1 = "人生若只如初见"
byte1 = str1.encode("GBK")  # 采用GBK编码进行转换
byte2 = str1.encode("utf-8")  # 采用utf-8编码进行转换
print("原字符串:", str1)
print("GBK转换:", byte1)
print("utf-8转换:", byte2)str2 = byte1.decode("utf-8")  # 使用错误方法进项解码
print("解码后:", str2)
>>>
原字符串: 人生若只如初见
GBK转换: b'\xc8\xcb\xc9\xfa\xc8\xf4\xd6\xbb\xc8\xe7\xb3\xf5\xbc\xfb'
utf-8转换: b'\xe4\xba\xba\xe7\x94\x9f\xe8\x8b\xa5\xe5\x8f\xaa\xe5\xa6\x82\xe5\x88\x9d\xe8\xa7\x81'
Traceback (most recent call last):File "C:/Users/XiangyangDai/Desktop/1.py", line 8, in <module>str2 = byte1.decode("utf-8")  # 使用错误方法进项解码
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte

Python字符串编码转换相关推荐

  1. 站长在线Python精讲:Python中字符串编码转换encode编码和decode解码详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中字符串编码转换:encode编码和decode解码详解>.本知识点主要内容有:常用编码简介.使用encode( ...

  2. Python字符编码转换Unicode和str

    参考链接1:https://blog.csdn.net/VictoriaW/article/details/75314737 参考链接2:https://blog.csdn.net/sheldonwo ...

  3. chrome字符串编码转换

    chrome字符串编码转换 字符串编码转换涉及宽字节表示法与UTF-8表示法之间的转换.宽字节表示法与UTF-16表示法之间的转换.UTF-8表示法与UTF-16表示法之间的转换.UTF-16表示法于 ...

  4. 分享万能java字符串编码转换工具类

    代码下载地址:http://www.zuidaima.com/share/1795356301560832.htm 原文:分享万能java字符串编码转换工具类 package com.zuidaima ...

  5. java万能编码转换_分享万能java字符串编码转换工具类

    package com.zuidaima.util; import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public cla ...

  6. python网址编码转换_python字符串与url编码的转换实例

    python字符串与url编码的转换实例 更新时间:2018年05月10日 10:27:46 作者:Tangzongyu123 今天小编就为大家分享一篇python字符串与url编码的转换实例,具有很 ...

  7. python中字符串编码转换

    字符串编码转换程序员最苦逼的地方,什么乱码之类的几乎都是由汉字引起的. 其实编码问题很好搞定,只要记住一点: 任何平台的任何编码,都能和Unicode互相转换. UTF-8与GBK互相转换,那就先把U ...

  8. python文本编码转换_Python: 转换文本编码

    最近在做周报的时候,需要把csv文本中的数据提取出来制作表格后生产图表. 在获取csv文本内容的时候,基本上都是用with open(filename, encoding ='UTF-8') as f ...

  9. Python字符串编码坑彻底详细解决 何梁

    所以不同编码的str对象可以先解码(decode)成unicode 再编码(encode)成其他编码的str对象. 真正完全搞清楚Python的编码问题 我想大家经常被Python的编码问题搞的晕头转 ...

  10. python utf-8编码转换中文_python实现unicode转中文及转换默认编码的方法

    本文实例讲述了python实现unicode转中文及转换默认编码的方法.分享给大家供大家参考,具体如下: 一.在爬虫抓取网页信息时常需要将类似"\u4eba\u751f\u82e6\u77e ...

最新文章

  1. PHP在使用正则表达式验证,防注入的时候要注意一下的细节
  2. SQLBulkCopy 性能统计
  3. [android] 百度地图开发 (二).定位城市位置和城市POI搜索
  4. 知识的深度跟知识的广度
  5. Command(命令)--对象行为型模式
  6. shell编程快捷方法
  7. stl 基于哈希的map c++_关于哈希表,你该了解这些!
  8. 在中国南方电网工作是一种怎样的体验?
  9. Oracle不打算修复这两个iPlanet信息泄漏和注入漏洞
  10. ejb3.0 中数据库的配置
  11. 模拟百度搜索框,输入时显示历史记录
  12. 白云机场停车费一天要多少钱,广州白云机场t2航站楼最近停车场
  13. JDK8的下载,安装和配置
  14. nexus6 android 6.0 root,全网首发:一键ROOT大师ROOT Nexus 6
  15. quicktime不能成功安装
  16. C#:命名空间“System.Windows”中不存在类型或命名空间名“Forms”(是否缺少程序集引用?)
  17. pdf转图片怎么清晰?
  18. DC-4靶场练习—teehee提权
  19. 项目难做,程序员难当,软件开发中的 9 大难题
  20. ct值matlab计算,一篇文章搞定CT值,不要再迷糊了

热门文章

  1. 二元函数洛必达求极限_(整理)二元函数极限的求法.
  2. swift 网络----利用URLSession的Data Task下载单张图片(包含图片的增量下载)
  3. 编程基础知识之浮点型
  4. 人工智能|人工智能语音识别系统的重要性
  5. [转]电子书收集工具
  6. libpng 处理png图片
  7. 离散数学9:二部图、欧拉图、哈密顿图
  8. 广州天河租房随笔记录
  9. 林轩田 《机器学习基石》学习笔记
  10. Python爬取QQ音乐并下载