Python字符串和str()方法编码和解码

2024-03-06

我看到Python 手册 http://docs.python.org/2/library/stdtypes.html#string-methods提及.encode() and .decode()字符串方法。在 Python CLI 上运行我发现我可以创建 unicode 字符串u'hello'具有与“常规”字符串不同的数据类型'hello'并且可以转换/投射str()。但当使用 ASCII 127 以上的字符时,真正的问题就开始了u'שלום'我很难凭经验确定究竟发生了什么。

堆栈溢出 https://stackoverflow.com/questions/1207457/convert-unicode-to-string-in-python-containing-extra-symbols is https://stackoverflow.com/questions/2513027/encoding-gives-ascii-codec-cant-encode-character-ordinal-not-in-range128 溢出来 https://stackoverflow.com/questions/17026845/why-is-python-insisting-on-using-ascii with https://stackoverflow.com/questions/2365411/python-convert-unicode-to-ascii-without-errors examples https://stackoverflow.com/questions/6539881/python-converting-from-iso-8859-1-latin1-to-utf-8 of https://stackoverflow.com/questions/3224268/python-unicode-encode-error 困惑 https://stackoverflow.com/questions/2239017/how-do-i-properly-work-with-unicode-characters-in-python-to-keep-from-getting-er 关于 https://stackoverflow.com/questions/7634715/python-decoding-unicode-is-not-supported Python's https://stackoverflow.com/questions/8436522/noob-queries-on-unicode-and-str-methods-in-python unicode https://stackoverflow.com/questions/2596714/why-does-python-print-unicode-characters-when-the-default-encoding-is-ascii and https://stackoverflow.com/questions/985486/utf-8-problem-in-python-when-reading-chars 字符串编码/解码 https://stackoverflow.com/questions/6504200/how-to-decode-unicode-raw-literals-to-readable-string handling https://stackoverflow.com/questions/196345/how-to-check-if-a-string-in-python-is-in-ascii.

使用以下命令对字符串进行编码和解码时到底发生了什么(字节如何更改,数据类型如何更改)str()方法,特别是当字符串中包含无法用7个字节表示的字符时?具有数据类型的 Python 变量是真的吗?<type 'str'>可以同时编码和解码吗?如果它是编码的,我理解这意味着该字符串由 UTF-8、ISO-8859-1 或其他编码表示,这是正确的吗?如果解码了,这意味着什么?解码后的字符串是unicode吗?如果是这样,那么为什么他们没有数据类型<type 'unicode'>?

为了以后阅读本文的人的利益,我认为 Python 2 和 Python 3 都应该得到解决。谢谢你!


这只是 Python 2 中的情况。decodePython 2 字符串上的方法是一个疣,它在 Python 3 中已被更改(其中等效的,bytes,只有decode).

您无法对已经编码的字符串进行“编码”。当你打电话时会发生什么encode on a str是Python隐式调用decode on it 使用默认编码,通常是 ASCII。这几乎总是不是您想要的。你应该经常打电话decode在将 str 转换为不同的编码之前将其转换为 unicode。

(和解码的字符串are统一码,他们do有类型<unicode>,所以我不知道你这个问题的意思。)

当然,在 Python 3 中,字符串默认是 unicode。您只能将它们编码为bytes- 正如我上面提到的,它只能被解码。

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

Python字符串和str()方法编码和解码 的相关文章

  • 使用 python 制作本地服务器应用程序的最佳方法

    我想要简单轻松地集成 python 和 vba 人们 如果他们在阅读本文后亲自见到我 阅读本文可能会杀了我 但我正在使用 django 开发服务器来实现此目的 有没有什么简单又好的方法 仅举个例子 我想使用 python 模块 openpy
  • 为什么我不能导入 geopandas?

    我唯一的代码行是 import geopandas 它给了我错误 OSError Could not find libspatialindex c library file 以前有人遇到过这个吗 我的脚本运行得很好 直到出现此错误 请注意
  • 在 Python 中使用 XPath 和 LXML

    我有一个 python 脚本 用于解析 XML 并将某些感兴趣的元素导出到 csv 文件中 我现在尝试更改脚本以允许根据条件过滤 XML 文件 等效的 XPath 查询将是 DC Events Confirmation contains T
  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 如何在 Ubuntu 上安装 Python 模块

    我刚刚用Python写了一个函数 然后 我想将其做成模块并安装在我的 Ubuntu 11 04 上 这就是我所做的 创建 setup py 和 function py 文件 使用 Python2 7 setup py sdist 构建分发文
  • NLTK、搭配问题:需要解包的值太多(预期为 2)

    我尝试使用 NLTK 检索搭配 但出现错误 我使用内置的古腾堡语料库 I wrote alice nltk corpus gutenberg fileids 7 al nltk corpus gutenberg words alice al
  • 使用 genfromtxt 导入 numpy 中缺失值的 csv 数据

    我有一个 csv 文件 看起来像这样 实际文件有更多的列和行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 假设文件的名称是info csv如果我尝试使用导入它 data numpy genfromtxt i
  • Pandas:根据列名进行列的成对乘法

    我有以下数据框 gt gt gt df pd DataFrame ap1 X 1 2 3 4 as1 X 1 2 3 4 ap2 X 2 2 2 2 as2 X 3 3 3 3 gt gt gt df ap1 X as1 X ap2 X a
  • 我可以使用 dask 创建 multivariate_normal 矩阵吗?

    有点相关这个帖子 https stackoverflow com questions 52337612 random multivariate normal on a dask array 我正在尝试复制multivariate norma
  • 使用循环将对象添加到列表(python)

    我正在尝试使用 while 循环将对象添加到列表中 基本上这就是我想做的 class x pass choice raw input pick what you want to do while choice 0 if choice 1 E
  • 在 Windows 上使用 IPython 笔记本时出现 500 服务器错误

    我刚刚在 Windows 7 Professional 64 位上全新安装了 IPython 笔记本 我采取的步骤是 从以下位置安装 Python 3 4 1http python org http python org gt pip in
  • 在谷歌C​​olab中使用cv2.imshow()

    我正在尝试通过输入视频来对视频进行对象检测 cap cv2 VideoCapture video3 mp4 在处理部分之后 我想使用实时对象检测来显示视频 while True ret image np cap read Expand di
  • Python Flask 是否定义了路由顺序?

    在我看来 我的设置类似于以下内容 app route test def test app route
  • python中的sys.stdin.fileno()是什么

    如果这是非常基本的或之前已经问过的 我很抱歉 我用谷歌搜索但找不到简单且令人满意的解释 我想知道什么sys stdin fileno is 我在代码中看到了它 但不明白它的作用 这是实际的代码块 fileno sys stdin filen
  • Python 矩阵每一行的总和

    lista 1 2 3 4 5 6 7 8 9 print lista def filas lista res for elemento in lista x sum lista elemento res append x print re
  • CSV 在列中查找最大值并附加新数据

    大约两个小时前 我问了一个关于从网站读取和写入数据的问题 从那时起 我花了最后两个小时试图找到一种方法来从输出的 A 列读取最大日期值 将该值与刷新的网站数据进行比较 并将任何新数据附加到 csv 文件而不覆盖旧的或创建重复项 目前 100
  • 具有指定置信区间的 Seaborn 条形图

    我想在 Seaborn 条形图上绘制置信区间 但我已经计算出置信区间 如何让 Seaborn 绘制我的置信区间而不是尝试自行计算它们 例如 假设我有以下 pandas DataFrame x pd DataFrame Group 1 0 5
  • 如何在SqlAlchemy中执行“左外连接”

    我需要执行这个查询 select field11 field12 from Table 1 t1 left outer join Table 2 t2 ON t2 tbl1 id t1 tbl1 id where t2 tbl2 id is
  • 将此 MATLAB 代码转换为 Python 时我做错了什么?

    我正在努力将生成波形的 MATLAB 代码转换为 Python 就上下文而言 这是原子力显微镜带激发响应的模拟 与代码错误无关 在 MATLAB 中从 r vec 生成的图形与我在 Python 中生成的图形不同 我是否正确地将 MATLA
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i

随机推荐

  • AngularJS:是否可以使控制器中的特定表单输入字段无效?

    我有一个地址文本输入字段 每当输入地址并单击输入字段旁边的搜索按钮时 我都会对地址进行地理编码 并将输入文本替换为地理编码器的结果 我还设置了一个范围变量 addressOk 是否可以根据以下内容使该特定表单输入字段无效 scope add
  • 将原始 JSON 加载到 Pig 中

    我有一个文件 其中每一行都是一个 JSON 对象 实际上 它是 stackoverflow 的转储 我想尽可能轻松地将其加载到 Apache Pig 中 但我无法弄清楚如何告诉 Pig 输入格式是什么 这是一个条目的示例 id oid 50
  • 为什么 C 提供的整数类型对于基本上任何项目来说都不够好?

    我更像是一名系统管理员而不是程序员 但我确实花费了大量的时间研究程序员的代码 试图找出问题所在 以及数量令人不安的that当程序员期望 u ll int32 t 或其他任何定义 是的 我知道这不是真的 但要么期望定义该类型的文件位于其他地方
  • 记录 CMake 脚本

    我发现自己处于一种情况 我想准确记录大量自定义 CMake 宏和函数 并且想知道如何做到这一点 首先想到的是简单地使用内置语法并且仅使用文档脚本 如下所示 FUNCTION NAME MACRO NAME description 这可以 但
  • 从适配器调用片段方法

    我需要在适配器中调用 Fragment 方法 但出现错误 ClassCastException Main MainActivity 无法转换为 PlayPauseClick Interface 我在我的片段中实现了我的界面 但我仍然收到此错
  • 每行字符数和每个文本区域的行数限制

    我正在尝试在 php 页面中创建一个多行文本区域 并且我想验证用户是否无法每行插入超过 50 个字符或超过 50 行 这个想法是 用户可以从电子表格中粘贴某些内容 但如果一行超过 50 个字符 则其余字符将被丢弃 并且不会插入到下一行中 这
  • 如何以编程方式检测位图是否具有 Alpha 通道?

    作为主题 最好使用C代码 MFC 版本 private static Boolean gc BitmapHasAlpha BitmapData gc bmpData if bmpData gt PixelFormat PixelFormat
  • Sitecore 文件夹和 IIS 权限

    设置或移动 Sitecore 解决方案时 您必须记住设置正确的文件夹权限和 IIS 权限 它类似于此处的第 3 3 3 2 3 3 3 9 节 http sdn sitecore net Products Sitecore 20V5 Sit
  • 存储一些大文本时哪个更好:XML资源文件中的字符串或类中的java字符串

    我必须存储一些长文本 以便在文本视图中使用 我一直在 xml 文件中使用字符串 但我不知道每个文本的 java 字符串是否会更好 所以 这是存储它们的最佳方式 在 XML 资源文件中创建字符串 创建一个类并将文本存储在java字符串中 Th
  • 在java中生成随机数列表

    我生成一个随机数 0 或 1 int randomColor Math random lt 0 5 0 1 我需要创建 52 个随机数 其中 26 个为 0 26 个为 1 您可以这样做 创建一个List共 52 个号码 用 26 个零和
  • 使用 sbt 从代码启动 scala repl 循环

    我正在尝试启动 scala repl 循环 使用breakif 并且正在从 SBT 构建 运行 并且我尝试遵循常见问题解答中的建议 但无法使其正常工作 有人可以给出一个用于配置设置的 MyType 示例吗 MyType 是一个代表性类 应包
  • 创建没有管理员访问权限的 venv python

    当我运行 python 时 m venv pathtomyvenv Error Command C Users user manageSQL Scripts python exe Im ensurepip upgrade default p
  • 服务器使用服务器端作为 servlet 发送事件

    我有一个使用 servlet 的简单服务器发送事件的运行实现 protected void doGet HttpServletRequest request HttpServletResponse response throws Servl
  • 在多个存储库中使用相同的 DbContext 是否明智?

    更深入地了解实体框架和存储库 以便更好地进行测试 想知道这是否明智 public interface IRepository int SaveChanges void Dispose using MyContext context new
  • Google colab 笔记本上的柯基模式是什么?

    什么是柯基模式在谷歌合作实验室做什么 可从以下位置访问Tools gt Preferences 柯基犬模式设置在标题中添加动画柯基犬 https twitter com GoogleColab status 1116487177364365
  • 在 RMarkdown 文档的 R 包中包含 TeX 标头

    我想创建一个包含 Latex 头文件的 R 包 然后可以从 RMarkdown 文档中使用该头文件来通过 TeX 创建带有幻灯片的 PDF 当我在 RMarkdown 文档的标题中包含对 Latex 文件的引用时 我可以创建幻灯片 但我不知
  • AVFoundation + AssetWriter:用图像和音频生成电影

    我必须从 iPhone 应用程序导出一部电影 其中包含 NSArray 中的 UIImage 并添加一些 caf 格式的音频文件 这些文件必须在预先指定的时间开始 现在我已经能够使用 AVAssetWriter 在浏览了本网站和其他网站上的
  • 是否可以制作一个按钮作为文件上传按钮?

    我是 php 新手 我有一个表单 在上面放置一个按钮 值作为Upload MB当用户单击此按钮时 它会重定向到一个 Web 表单 我在其中放置文件上传控件和用户上传文件 这是图像 单击此按钮后 用户将重定向到此表单 此处用户上传文件 我的问
  • 使用 Spring 批处理文件项读取器进行多线程处理

    在 Spring Batch 中 我尝试读取 CSV 文件 并希望将每一行分配给一个单独的线程并处理它 我尝试通过使用 TaskExecutor 来实现它 但是所有线程正在发生的事情是一次选择同一行 我也尝试使用 Partioner 来实现
  • Python字符串和str()方法编码和解码

    我看到Python 手册 http docs python org 2 library stdtypes html string methods提及 encode and decode 字符串方法 在 Python CLI 上运行我发现我可