广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python 字符编码与转换
  • 893
分享到

python 字符编码与转换

字符python 2023-01-30 21:01:15 893人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

unicode 中文英文默认统一 2个字节ASCII 只有英文和特殊字符 每个占用1个字节 不能存中文每个字节由8个比特(Bit)构成假如一个英文文档是2M,转换为unicode 编码转换,就变成了4M为了解决空间浪费的问题,在unicod

unicode 中文英文默认统一 2个字节

ASCII 只有英文和特殊字符 每个占用1个字节 不能存中文


每个字节由8个比特(Bit)构成


假如一个英文文档是2M,转换为unicode 编码转换,就变成了4M

为了解决空间浪费的问题,在unicode的基础上,出现了一个扩展集,叫UTF-8

UTF-8编码是可变长编码。默认所有英文字母按照ASCII的形式去存储。

所有中文字符,统一是3个字节

英文和特殊字符,依然是1个字节


unicode是万国编码,任何国家都可以使用。每个国家,编码都不一样的。

比如一款游戏《大话西游》用的是gbk编码开发的。出口到欧美国家,是无法直接运行的。

怎么办呢?把gbk转换为unicode就可以解决这个问题了。


关于字符编码与转码

请参考详细文章:

Http://www.cnblogs.com/luotianshuai/articles/5735051.html


http://www.diveintopython3.net/strings.html


需知:


1.在python2默认编码是ASCII, Python3里默认是unicode

2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间

3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string


下面请看一张图

blob.png



字符串转换为gbk

s = "您好"
print(s.encode("gbk"))

执行输出

b'\xc4\xfa\xba\xc3'


可以看到输出最前面有一个b 表示这是一个二进制类型,也称之为bytes类型

那么encode("gbk"),不光是转换了编码,还转换成了二进制数据


查看gbk和utf-8的区别

import sys
#打印默认编码
print(sys.getdefaultencoding())

s = "您好"
s_gbk = s.encode("gbk")
#打印gbk
print(s_gbk)
#打印utf-8,encode()默认使用utf-8
print(s.encode())

执行输出

utf-8

b'\xc4\xfa\xba\xc3'

b'\xe6\x82\xa8\xe5\xa5\xbd'


将gbk转换为utf-8

import sys
#打印默认编码
print(sys.getdefaultencoding())

s = "您好"
s_gbk = s.encode("gbk")
print(s_gbk)
print(s.encode())

gbk_to_utf8 = s_gbk.decode("gbk").encode("utf-8")
print("utf8",gbk_to_utf8)

执行输出

utf-8

b'\xc4\xfa\xba\xc3'

b'\xe6\x82\xa8\xe5\xa5\xbd'

utf8 b'\xe6\x82\xa8\xe5\xa5\xbd'


发现转换之后,和上面的utf-8,是一模一样的。


上面的大图显示

gbk转换为utf8,需要2步

1.首先通过编码【decode】转换为unicode编码

2.然后通过解码【encode】转换为utf-8的编码


总结:

不同编码之间的转换,必须要先转换为unicode编码。

先执行decode()方法,传一个参数,告诉它,我是什么编码。

最后执行encode()方法,传一个参数,将要转换的编码是什么。


以下代码表示,声明文件编码为

# coding: gbk

在python 里面,默认声明的变量是utf-8

# coding: gbk
import sys
#打印默认编码
print(sys.getdefaultencoding())

s = "您好"
s_gbk = s.encode("gbk")
print(s_gbk)

程序执行

utf-8

b'\xc4\xfa\xba\xc3'


如果想要转换的gbk,能够正常显示

需要执行4步

print(s.encode("utf-8").decode("utf-8").encode("gbk").decode("gbk"))

这一段代码就可以正常输出中文


由于s变量,默认就是utf-8编码,不能直接使用decode()方法。

需要先执行encode("utf-8"),再执行decode("utf-8")

再执行encode("gbk"),输出

b'\xc4\xfa\xba\xc3'
由于它是一个bytes类型,需要转换为字符串,所以最后执行decode("gbk")

得到中文 您好


编码之间的转换,需要2个步骤。先decode(),再encode().

转换完成之后,数据是bytes类型的,比较恶心啊。

如果需要正常显示,得decode()一下,才能正常显示。

注意,这里是decode()是指bytes类型与string类型之间的相互转换。



--结束END--

本文标题: python 字符编码与转换

本文链接: https://www.lsjlt.com/news/178989.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python 字符编码与转换
    unicode 中文英文默认统一 2个字节ASCII 只有英文和特殊字符 每个占用1个字节 不能存中文每个字节由8个比特(Bit)构成假如一个英文文档是2M,转换为unicode 编码转换,就变成了4M为了解决空间浪费的问题,在unicod...
    99+
    2023-01-30
    字符 python
  • python字符串与url编码的转换
    主要应用的场景 爬虫生成带搜索词语的网址 1.字符串转为url编码 import urllib poet_name = "李白" url_code_name = urllib.quote(poet_name) print url...
    99+
    2023-01-31
    字符串 python url
  • python字符编码与转码
    python 2.x 字符编码与转码打印系统默认编码格式import sys print(sys.getdefaultencoding())UTF-8 转 gbk方式:utf-8--转成--unicode--转成--gbka = "你好" ...
    99+
    2023-01-31
    字符 python
  • python字符串编码如何转换
    Python中字符串的编码转换可以使用`encode`和`decode`方法。具体的操作如下:1. 字符串编码:使用`encode`...
    99+
    2023-09-13
    python
  • python中json和字符编码的转换
    json是用来转换python object 和json format 的,字符编码有gb2312,gb18030/gbk,utf-8等。在 Python 中出现的 str 都是用字符集编码的 ansi 字符串。Python 本身并不知道 ...
    99+
    2023-01-31
    字符 python json
  • jquery如何转换字符串编码
    本文小编为大家详细介绍“jquery如何转换字符串编码”,内容详细,步骤清晰,细节处理妥当,希望这篇“jquery如何转换字符串编码”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。第一步:查看原始字符串编码格式在进...
    99+
    2023-07-05
  • php字符串如何转换编码
    本篇内容主要讲解“php字符串如何转换编码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php字符串如何转换编码”吧!mb_convert_encoding函数mb_convert_encodi...
    99+
    2023-07-05
  • Python时间戳转换为字符串与字符串转换为时间戳
    实例代码: if __name__ == '__main__': # 时间戳 import time seconds = time.time() ...
    99+
    2023-02-15
    python字符串转换为日期 python字符串转换时间戳 python时间戳转换
  • VBS字符串编码转换函数代码
    因为业务需要将一些字符串转换为指定编码方便后期操作 核心代码 Const adTypeBinary = 1 Const adTypeText = 2 ' accept a stri...
    99+
    2023-05-15
    VBS编码转换 vbscript编码转换
  • Python中的字符串与字符编码
    Hello,这里是Token_w的博客,欢迎您的到来 今天文章讲解的是Python中的字符串与字符编码,其中有基础的理论知识讲解,也有实战中的应用讲解,希望对你有所帮助 整理不易,如对你有所帮助,希望能得到你的点赞、收藏支持。感谢 ...
    99+
    2023-08-30
    python android 开发语言
  • php如何转换字符编码为utf8
    这篇“php如何转换字符编码为utf8”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“php如何转换字符编码为utf8”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让...
    99+
    2023-06-06
  • php字符串转换编码的方法
    这篇“php字符串转换编码的方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php字符串转换编码的方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起...
    99+
    2023-06-06
  • Python基础知识大全:字符编码转换、函数
      字符编码转换  字符编码转换最重要的一点就是,切记unicode是编码之间的中转站,若unicode不是目标编码或者原始编码,那么任何两个编码相互转换都需要经过unicode(见下图)。  需要注意的是,python的默认编码是ASCI...
    99+
    2023-06-02
  • Python字符串中字符的大写与小写的转换
    这篇文章主要介绍“Python字符串中字符的大写与小写的转换”,在日常操作中,相信很多人在Python字符串中字符的大写与小写的转换问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python字符串中字符的大写...
    99+
    2023-06-17
  • python中ascii码和字符怎么转换
    在Python中,可以使用`ord()`函数来将字符转换为ASCII码,使用`chr()`函数将ASCII码转换为字符。以...
    99+
    2023-09-20
    python
  • PHP中的字符编码和转换技术
    PHP是一种极其流行的服务器端编程语言,它被广泛应用于开发Web应用程序。为什么PHP如此受欢迎?其中一个原因是PHP具有良好的字符编码和转换技术,这使得它能够处理来自世界各地的文本数据,包括不同的字符集和语言。本文将从以下三个方面探讨PH...
    99+
    2023-05-14
    PHP编程 字符编码 转换技术
  • 浅析php字符串怎么转换编码
    在Web开发过程中,经常会遇到需要将字符串编码转换的情况,比如将ISO-8859-1编码的字符串转换为UTF-8编码的字符串。在PHP中,提供了一些函数来处理字符串编码转换的问题。本文将介绍如何使用PHP将字符串编码转换为另一种编码。mb_...
    99+
    2023-05-14
    php
  • Python13 字符转编码
    编码: 最开始电脑的字符集是ASCII,英文在ASCII中每个字母占1个字节,但ASCII不支持中文,所以后来出现了Unicode; Unicode中 英文和中文都占用两个字节,对于英文来说不合理,所以在Unicode的基础上出现了Unic...
    99+
    2023-01-31
    字符
  • PYTHON时间与字符串的互相转换
    这篇文章主要讲解了“PYTHON时间与字符串的互相转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PYTHON时间与字符串的互相转换”吧!1、字符串转换成时间[in]from d...
    99+
    2023-06-02
  • 在Java中怎么将 Base64编码与String字符串进行转换
    这篇文章给大家介绍在Java中怎么将 Base64编码与String字符串进行转换,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体方法如下:package com.duanlian.daimengmusic...
    99+
    2023-05-31
    java string base64
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作