返回顶部
首页 > 资讯 > 后端开发 > Python >PYTHON3编码再探究
  • 639
分享到

PYTHON3编码再探究

2023-06-02 05:06:03 639人浏览 泡泡鱼

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

摘要

原文请戳本文大概需要10分钟看完1 看一段简单代码要求:linux编辑器,python3版本vim test1.py# test1.py内容:import sys, locales = "王佳"print(s)print(sys.getde

原文请戳

本文大概需要10分钟看完

1 看一段简单代码

要求:linux编辑器,python3版本

vim test1.py
# test1.py内容:import sys, locales = "王佳"print(s)print(sys.getdefaultencoding())print(locale.getdefaultlocale())with open("utf8_1.txt","w",encoding = "utf-8") as f:    f.write(s)with open("gbk_1.txt","w",encoding = "gbk") as f:    f.write(s)

sys.getdefaultencoding():python编译器的编码
locale.getdefaultlocale():本地操作系统的编码
上述代码返回结果:

王佳utf-8 # Python编译器的编码('en_US', 'UTF-8') # 本地操作系统的编码

再来看一下生成的两个文件中的内容,我们使用notepad打开,并且将这两个的文件编码都设置成utf-8
utf8_1.txt:
PYTHON3编码再探究

gbk_1.txt:
PYTHON3编码再探究
分析如下:

#1 对于utf8_1.txt来说# 第一步:由于linux的编辑器是utf8,所以:'王佳'.encode('utf8') = \xe7\x8e\x8b\xe4\xbd\xb3 (写入文件时)# 第二步:由于没有指定py文件的coding,所以python解释器将默认按照系统编码utf8进行解码\xe7\x8e\x8b\xe4\xbd\xb3.decode('utf8') = '王佳'# 第三步:open时指定了encoding=utf8去编码写入到文件中'王佳'.encode('utf8')= \xe7\x8e\x8b\xe4\xbd\xb3# 第四步:在notepadd中指定了utf8去解码\xe7\x8e\x8b\xe4\xbd\xb3.decode('utf8')='王佳'#2 对于gbk_1.txt来说# 第一步:由于linux的编辑器是utf8,所以:'王佳'.encode('utf8') = \xe7\x8e\x8b\xe4\xbd\xb3 (写入文件时)# 第二步:由于没有指定py文件的coding,所以python解释器将默认按照系统编码utf8进行解码\xe7\x8e\x8b\xe4\xbd\xb3.decode('utf8') = '王佳'# 第三步:open时指定了encoding=gbk去编码写入到文件中'王佳'.encode('gbk')= \xcd\xf5\xbc\xd1# 第四步:在notepadd中指定了utf8去解码\xcd\xf5\xbc\xd1.decode('utf8')=这样写会报错,因为utf8编码,没有这几个。所以notepad就显示其gbk的字节码。

再看一段代码

# test2.py#coding=gbkimport sys, locales = "王佳"print(s)print(sys.getdefaultencoding())print(locale.getdefaultlocale())with open("utf8_2.txt","w",encoding = "utf-8") as f:    f.write(s)with open("gbk_2.txt","w",encoding = "gbk") as f:    f.write(s)

此时,再看一下文件中的结果:
utf8_2.txt:
PYTHON3编码再探究

# 出现 鐜嬩匠 的原因分析# 第一步:由于linux的编辑器是utf8,所以:'王佳'.encode('utf8') = \xe7\x8e\x8b\xe4\xbd\xb3 (写入文件时)# 第二步:由于指定py文件的coding=gbk,所以python解释器将默认按照系统编码gbk进行解码读取\xe7\x8e\x8b\xe4\xbd\xb3.decode('gbk') = '鐜嬩匠'# 第三步:open时指定了encoding=utf8去编码写入到文件中'鐜嬩匠'.encode('utf8')= ??\xe5\x8c\xa0# 第四步:在notepadd中指定了utf8去解码??\xe5\x8c\xa0.decode('utf8')='鐜嬩匠'

gbk_2.txt:
PYTHON3编码再探究

# 正常显示的原因# 第一步:由于linux的编辑器是utf8,所以:'王佳'.encode('utf8') = \xe7\x8e\x8b\xe4\xbd\xb3 (写入文件时)# 第二步:由于指定py文件的coding=gbk,所以python解释器将默认按照系统编码gbk进行解码读取\xe7\x8e\x8b\xe4\xbd\xb3.decode('gbk') = '鐜嬩匠'# 第三步:open时指定了encoding=gbk去编码写入到文件中'鐜嬩匠'.encode('gbk')= \xe7\x8e\x8b\xe4\xbd\xb3# 第四步:在notepadd中指定了utf8去解码\xe7\x8e\x8b\xe4\xbd\xb3.decode('utf8')='王佳'

--结束END--

本文标题: PYTHON3编码再探究

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

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

猜你喜欢
  • PYTHON3编码再探究
    原文请戳本文大概需要10分钟看完1 看一段简单代码要求:Linux编辑器,python3版本vim test1.py# test1.py内容:import sys, locales = "王佳"print(s)print(sys.getde...
    99+
    2023-06-02
  • Go语言编码探究:常见编码格式解析
    Go语言编码探究:常见编码格式解析 在软件开发中,数据编码是一个至关重要的概念。不同的编码格式对于数据的存储、传输、处理等都有着不同的影响,而合适的编码格式能够提高数据的效率和可靠性。...
    99+
    2024-04-02
  • AndroidHandler源码深入探究
    1.android 消息循环有4个重要的类Handler、Message、Looper、MessageQueue handler 用来发送、处理消息。 Message 是消息的载体。...
    99+
    2024-04-02
  • Python之再说编码
    ''' 编码回顾 :     ASCII : 一个字节,包括数字,字母,特殊字符;     GBK : 国标码,占用两个字节,包括中文,部分日文,韩文等;     UNICODE : 万国码, 四个字节,包含世界上所有国家的字符;     ...
    99+
    2023-01-31
    Python
  • ASP 中的编程算法探究
    ASP(Active Server Pages)是一种基于服务器端脚本的动态网页技术,它使用VBScript或JScript等脚本语言编写,并通过IIS(Internet Information Services)服务器进行解释执行。在AS...
    99+
    2023-11-12
    并发 数据类型 编程算法
  • mysql 字符集乱码探究
    环境描述:青云的mysql实例的ip为:192.168.0.254,和青云的跳板主机,我们在跳板主机上安装了mysql服务,并通过下面方式连接mysql: ...
    99+
    2024-04-02
  • 探究c++虚表实现代码
    本文简单探究虚表实现。 如下代码中有一个基类CPerson和子类CStudent:public.并有两个虚函数run和cry。 #include<iostream> ...
    99+
    2024-04-02
  • react源码层探究setState作用
    目录前言为什么setState看起来是异步的从first paint开始触发组件更新更新渲染fiber tree写在最后前言 在深究 React 的 setState 原理的时候,我...
    99+
    2022-11-13
    react setState react setState源码
  • Python3 字符编码
    原文出处:http://www.cnblogs.com/284628487a/p/5584714.html编码字符串是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才...
    99+
    2023-01-31
    字符
  • 【Python3】02、python编码
    一、ASCII、Unicode和UTF-8的区别       因为字符编码的问题而苦恼不已,于是阅读了大量的博客,再进行了一定的测试,基本搞清楚了编码问题的前因后果。1、字符集和字符编码      计算机中储存的信息都是用二进制数表示的;而...
    99+
    2023-01-31
    python
  • Python3的URL编码解码
    博主最近在用python3比较强大的Django开发web的时候,发现一些url的编码问题,在浏览器提交请求api时,如果url中包含汉子,就会被自动编码掉。呈现的结果是 ==> %xx%xx%xx。如果出现3个百分号为一个原字符则...
    99+
    2023-01-31
    URL
  • 探究绝对值编码器定位程序的运作原理
    浅析绝对值编码器定位程序的工作原理 绝对值编码器(Absolute Encoder)是一种常用的位置传感器,在许多自动化系统和工业设备中广泛使用。它能够精确测量物体的位置,并将测量结果以数字形式输出,方便计算机或控制系统进行实时...
    99+
    2024-01-18
    工作原理 绝对值编码器 定位程序
  • Android源码探究之BaseDexClassLoader的使用
    目录前言一.dexPath(String)二.optimizedDirectory三.librarySearchPath四.parent五.总结前言 一共有4个参数,分来来讲。 1:...
    99+
    2022-11-13
    Android BaseDexClassLoader Android BaseDexClassLoader源码
  • 关于 Python3 的编码
    Python3 中 str 与 bytes 的转换:The bytes/str dichotomy in Python 3字符与 Unicode 编号之间的转换# 字符转 Unicode 编号 >>> ord('...
    99+
    2023-01-31
  • Python3的编码问题
    ​介绍Python3中的编码问题前,第一个段落对字节、ASCII​与Unicode与UTF-8等进行基本介绍,如果不对这几种编码犯头晕,可直接跳过。 ASCII​与Unicode与UTF-8与GBK 首先从老大哥说起。跟很多人一样,...
    99+
    2023-01-31
  • Vue.use的原理和设计源码探究
    目录前言基本使用源码解析控制反转前言 这段时间打算回顾一下Vue的全局方法,脑海里第一个跳出来的方法就是Vue.use,之所以会首先想到它,我觉得和我平时看的面试题相关~~~ Vu...
    99+
    2023-02-09
    Vue.use原理设计 Vue.use设计
  • AndroidJetpack组件库LiveData源码深入探究
    目录前言一、LiveData二、使用案例三、LiveData 实现原理四、LiveData 相关源码五、LiveData分发问题Android Jetpack之ViewModel、L...
    99+
    2024-04-02
  • python3编码问题汇总
    这两天写了个监测网页的爬虫,作用是跟踪一个网页的变化,但运行了一晚出现了一个问题。。。。希望大家不吝赐教! 我用的是python3,错误在对html response的decode时抛出,代码原样为: ...
    99+
    2022-06-04
  • Golang编译器汇总:探究各类编译器优缺点
    随着Golang的发展,越来越多的编译器被开发出来。在选择一款编译器时,开发人员需要考虑诸多因素,例如可靠性、性能、易用性等。本篇文章将汇总一些常见的Golang编译器,并探究它们的优缺点,帮助开发者更好地选...
    99+
    2024-01-19
    编译器 Golang 优缺点
  • Python 自然语言处理:编程算法探究?
    Python 自然语言处理:编程算法探究 自然语言处理(NLP)是人工智能领域中的一个重要分支,它研究如何使计算机能够理解、处理和生成自然语言,以便更好地与人类交互。Python 是一种流行的编程语言,它在 NLP 领域中也有着重要的应用。...
    99+
    2023-11-14
    自然语言处理 编程算法 学习笔记
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作