python中处理字符编码问题

2023-05-16

NO.1认识字符编码

GBK

	***win默认中文字符编码是:

GBK


Unicode

	***(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。兼容GB2312、GBK......***

ASCII

	***美国(国家)信息交换标准(代)码,一种使用7个或8个二进制位进行编码的方案,最多可以给256个字符

ASCII(包括字母、数字、标点符号、控制字符及其他符号)分配(或指定)数值。***

Unicode默认两个字节(16)位表示一个中文或者英文;
ascII默认一个字节(8)位表示,只能存英文或特殊字符;

UTF-8((可变长的字符编码)

	***EG:原本一个英文文档本来是ASCII做字符编码集,要是用了Unicode则增加了一倍空间,造成了空间的浪费,为了解决这个问题,在Unicode的基础上, 衍生出了Unicode的扩展集 :UTF-8(可变长的字符编码)***

默认:所有的英文字符按ASCII码的形式去存储,所有的中文字符统一是三个字节

字符编码的各种转换

以下图片来自博客:https://www.cnblogs.com/luotianshuai/articles/5735051.html
字符编码集关系图

总结:所有不同编码之间的转换都要经过Unicode来当作媒介

日文的字符要在中国的win上显示或者应用的过程: 先将日文的字符编码转换成Unicode,再由Unicode转换成中文的GBK

python3上默认所有的字符都是Unicode类型

以下小实验以下python3中从UTF-8转成GBK
encode:编码
decode:解码

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

import sys
print(sys.getdefaultencoding())
                  
[root@localhost mnt]# python -V
Python 3.6.5
[root@localhost mnt]# python test.py 
utf-8    #系统做过设置,一般默认是Unicode
[root@localhost mnt]# 

在python2版本中默认是ascii
在这里插入图片描述

字符转换实验 python2.7环境
python2默认字符集(ascii)转换成unicode-》utf-8类型

#-*- coding:utf-8 -*-
import sys
print(sys.getdefaultencoding())   #打印默认字符编码集


s = '你好'
s_to_unicode = s.decode("utf-8")  #转成utf-8(属unicode于)
print(s_to_unicode)
print(type(s_to_unicode))   #打印类型

###########################打印
[root@localhost mnt]# python test.py 
ascii
你好
<type 'unicode'>
[root@localhost mnt]# 

#把unicode类型转换成gbk类型

#-*- coding:utf-8 -*-
import sys
print(sys.getdefaultencoding())


s = '你好'
s_to_unicode = s.decode("utf-8")
print(s_to_unicode)
print(type(s_to_unicode))

s_to_gbk = s_to_unicode.encode("gbk")
print(s_to_gbk)



[root@localhost mnt]# python test.py 
ascii
你好     #CRT设置成GB2312  按说应该设置成默认,因为win默认是GBK字符编码集
[root@localhost mnt]#

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python中处理字符编码问题 的相关文章

  • 为什么应用程序会在 sys.exit 命令之后显示?

    我正在关注这个教程 http zetcode com tutorials pyqt4 firstprograms http zetcode com tutorials pyqt4 firstprograms 在第一个示例中 我不明白为什么应
  • python中的编码检测库[重复]

    这个问题在这里已经有答案了 这在某种程度上与我的问题有关here https stackoverflow com questions 2305997 unicodedecodeerror problem with mechanize 我处理
  • 如何测试顶级窗口是否打开?

    我感觉 Python 编程可能不是我的菜 我创建了一个 tkinter GUI 它使用按钮回调来打开另一个窗口 其他搜索说这个窗口应该是顶级窗口 并且它工作得很好 但是每次按下按钮时它都会打开另一个相同的窗口 如据我所知 窗口 问题 如何测
  • 使用 Marshmallow 中的数据更新行 (SQLAlchemy)

    我正在使用 Flask Flask SQLAlchemy Flask Marshmallow marshmallow sqlalchemy 尝试实现 REST api PUT 方法 我还没有找到任何使用 SQLA 和 Marshmallow
  • Python:多处理和请求

    以下是我正在运行的使用多处理并行触发 HTTP 请求的代码片段 在控制台上运行后 它挂在 requests get url 处 既不继续前进也不抛出错误 def echo 100 q print before r requests get
  • OpenCV Python 删除图像中的某些对象

    我正在使用带有 opencv 和 numpy 的 python 来检测天文中的星星 例如这个1 https i stack imgur com AKwEJ jpg图片 使用模板匹配 我可以用阈值检测星星 单击 2 2 https i sta
  • 使用 Flask SQLAlchemy 进行表(模型)继承

    我遵循了这个建议question https stackoverflow com questions 1337095 sqlalchemy inheritance但我仍然收到此错误 sqlalchemy exc NoForeignKeysE
  • Python中#和"""注释的区别

    开始用 Python 编程 我看到一些带有注释的脚本 and comments 这两种评论方式有什么区别 最好的事情就是阅读PEP 8 Python 代码风格指南 https www python org dev peps pep 0008
  • 使用 python 通过搜索端点从 Spotify API 获取曲目

    因此 我尝试使用 API 的搜索端点进行搜索 从而从 Spotify API 获取曲目 请参阅文档 https developer spotify com documentation web api reference search sea
  • 同情因子简单关系

    我在 sympy 中有一个简单的因式分解问题 无法解决 我在 sympy 处理相当复杂的积分方面取得了巨大成功 但我对一些简单的事情感到困惑 如何得到 phi 2 2 phi phi 0 phi 0 2 8 因式分解 phi phi 0 2
  • 用于打印 C/C++ 文件的所有函数定义的 Python 脚本

    我想要一个 python 脚本来打印 C C 文件中定义的所有函数的列表 e g abc c定义两个函数为 void func1 int func2 int i printf d i return 1 我只想搜索文件 abc c 并打印其中
  • 打印一个 Jupyter 单元中定义的所有变量

    有没有一种更简单的方法来以漂亮的方式显示单个单元格中定义的所有变量的名称和值 我现在做的方式是这样的 但是当有30个或更多变量时我浪费了很多时间 您可以使用whos http ipython readthedocs io en stable
  • keras 预测内存交换无限期增加

    我使用keras实现了一个分类程序 我有一大组图像 我想使用 for 循环来预测每个图像 然而 每次计算新图像时 交换内存都会增加 我尝试删除预测函数内部的所有变量 并且我确信该函数内部存在问题 但内存仍然增加 for img in ima
  • 如何在Python中正确声明ctype结构+联合?

    我正在制作一个二进制数据解析器 虽然我可以依靠 C 但我想看看是否可以使用 Python 来完成该任务 我对如何实现这一点有一些了解 我当前的实现如下所示 from ctypes import class sHeader Structure
  • Python将csv数据导出到文件中

    我有以下运行良好的代码 但我无法修剪数据并将其存储在数据文件中 import nltk tweets love this car this view amazing not looking forward the concert def g
  • 将带有两层分隔符的字符串转换为字典 - python

    给定一个字符串 s x t1 ny t2 nz t3 我想转换成字典 sdic x 1 y 2 z 3 我通过这样做让它工作 sdic dict tuple j split t for j in i for i in s split n F
  • 将 ASCII 字符转换为“”unicode 表示法的脚本

    我正在对 Linux 区域设置文件进行一些更改 usr share i18n locales like pt BR 并且需要格式化字符串 例如 d m Y H M 必须以 Unicode 指定 其中每个 在本例中为 ASCII 字符表示为
  • if/else 在 while 循环内正确缩进[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我开始学习 Python 编程大约几周了 我遇到了一些麻烦 下面的代码是一个小程序 用于检查列表中是否有偶数 如果找到第一个偶数
  • 写入 UDP 套接字会被阻塞吗?

    如果是的话 在什么条件下 或者 换句话说 在twisted 中运行此代码是否安全 class StatsdClient AbstractStatsdClient def init self host port super StatsdCli
  • Synapse Notebook 参考 - 使用参数从另一个笔记本调用 Synapse Notebook

    我有一个带有参数的突触笔记本 我试图从另一个笔记本调用该笔记本 我正在使用 run 命令 我应该如何将参数从基本笔记本传递到正在调用的笔记本 另外 对我来说 上述答案不起作用 作为对此问题的单独解决方案 下面是一个答案 打开笔记本并转到最右

随机推荐