将 ☺ 编码为 IBM-437 失败,而将 é 等其他有效字符编码成功

2024-04-05

☺:

>>> bytes('☺','ibm437')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.3/encodings/cp437.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character '\u263a' in position 0: character maps to <undefined>

与 é 相反,它的作用是:

>>> bytes('é','ibm437')
b'\x82'

我期待☺带我回来b'\x01'。我怎样才能做到这一点?

代码页 437 的图像。 http://en.wikipedia.org/wiki/File%3aCodepage-437.png


IBM-437 有点特殊,因为它不仅是一个代码页(即定义字节值 128-255 应该发生什么),而且还重新定义了一些 ASCII 控制字符,但仅在某些情况下 http://en.wikipedia.org/wiki/Code_page_437#Interpretation_of_code_points_1.E2.80.9331_and_127。 Python 将这些有问题的代码点映射到控制字符,而不是映射到它们在某些上下文中显示的可见字符。

要进行转换,您可以使用以下辅助方法:

ibm437_visible = lambda byt: byt.decode('ibm437').translate({
    0x01: "\u263A", 0x02: "\u263B", 0x03: "\u2665", 0x04: "\u2666",
    0x05: "\u2663", 0x06: "\u2660", 0x07: "\u2022", 0x08: "\u25D8",
    0x09: "\u25CB", 0x0a: "\u25D9", 0x0b: "\u2642", 0x0c: "\u2640",
    0x0d: "\u266A", 0x0e: "\u266B", 0x0f: "\u263C", 0x10: "\u25BA",
    0x11: "\u25C4", 0x12: "\u2195", 0x13: "\u203C", 0x14: "\u00B6",
    0x15: "\u00A7", 0x16: "\u25AC", 0x17: "\u21A8", 0x18: "\u2191", 
    0x19: "\u2193", 0x1a: "\u2192", 0x1b: "\u2190", 0x1c: "\u221F",
    0x1d: "\u2194", 0x1e: "\u25B2", 0x1f: "\u25BC", 0x7f: "\u2302",
})
assert ibm437_visible(b'\x01') == '☺'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 ☺ 编码为 IBM-437 失败,而将 é 等其他有效字符编码成功 的相关文章

  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • Flask 和 uWSGI - 无法加载应用程序 0 (mountpoint='')(找不到可调用或导入错误)

    当我尝试使用 uWSGI 启动 Flask 时 出现以下错误 我是这样开始的 gt cd gt root localhost uwsgi socket 127 0 0 1 6000 file path to folder run py ca
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • Spark的distinct()函数是否仅对每个分区中的不同元组进行洗牌

    据我了解 distinct 哈希分区 RDD 来识别唯一键 但它是否针对仅移动每个分区的不同元组进行了优化 想象一个具有以下分区的 RDD 1 2 2 1 4 2 2 1 3 3 5 4 5 5 5 在此 RDD 上的不同键上 所有重复键
  • 将 github 上的包安装到 Spyder 中

    我一直在尝试安装并导入mpl finance来自 github 的包 在我的 Spyder 环境中没有成功 我努力了 pip install e git https github com matplotlib mpl finance git
  • 在循环中每次迭代开始时将变量重新分配给原始值(在循环之前定义)

    在Python中 你使用 在每次迭代开始时将变量重新分配给原始值 在循环之前定义 时 也就是说 original 1D o o o for i in range 0 3 new original 1D revert back to orig
  • 运行多个 scrapy 蜘蛛的正确方法

    我只是尝试使用在同一进程中运行多个蜘蛛新的 scrapy 文档 http doc scrapy org en 1 0 topics practices html但我得到 AttributeError CrawlerProcess objec
  • 在 NumPy 中获取 ndarray 的索引和值

    我有一个 ndarrayA任意维数N 我想创建一个数组B元组 数组或列表 其中第一个N每个元组中的元素是索引 最后一个元素是该索引的值A 例如 A array 1 2 3 4 5 6 Then B 0 0 1 0 1 2 0 2 3 1 0
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • Nuitka 未使用 nuitka --recurse-all hello.py [错误] 编译 exe

    我正在尝试通过 nuitka 创建一个简单的 exe 这样我就可以在我的笔记本电脑上运行它 而无需安装 Python 我在 Windows 10 上并使用 Anaconda Python 3 我输入 nuitka recurse all h
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL
  • 使用基于正则表达式的部分匹配来选择 Pandas 数据帧的子数据帧

    我有一个 Pandas 数据框 它有两列 一列 进程参数 列 包含字符串 另一列 值 列 包含相应的浮点值 我需要过滤出部分匹配列 过程参数 中的一组键的子数据帧 并提取与这些键匹配的数据帧的两列 df pd DataFrame Proce
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data

随机推荐

  • abort() 不是 VS2010 中的 __declspec(noreturn)

    在我的 VS2010 副本中 stdlib h 包含 第 353 355 行 CRTIMP declspec noreturn void cdecl exit In int Code CRTIMP declspec noreturn voi
  • 如何撤消 Angular 2 Cli ng-eject?

    我刚刚执行了ng eject命令 但现在我需要恢复它 并继续使用ng命令 是否可以 我将不胜感激任何帮助 At https github com angular angular cli blob master packages 40angu
  • 如何获取给定字体文件的字体系列的名称?

    我有一组文件名不可预测的字体文件 因此我无法从文件名中推断出真正的 字体系列 名称 因此 我需要读取字体元数据以提取真正的 字体系列 名称 以便渲染此字体文件 我使用的是 C NET 4 0 WinForms 我见过这个功能GetFontI
  • 如何将日期选择器最大日期限制为今天? [复制]

    这个问题在这里已经有答案了 问题就在标题里 我有两个日期选择器 从和到 我想将日期选择器限制为当前日期 我怎么做 提前致谢 使用 maxDate 选项 http jqueryui com demos datepicker option ma
  • 如何处理 Web API 中的可选查询字符串参数

    我正在编写一个 Web API 我希望了解处理可选查询字符串参数的最佳方法是什么 我有一个定义如下的方法 HttpPost public HttpResponseMessage ResetPassword User user var que
  • SQL Server 加权全文搜索

    目前 我有一个表 可以在 4 个字段 名字 姓氏 中间名和别名 上搜索 我目前有一个包含稳定搜索行并且它有效 不太好 但它有效 现在我想让名字的权重更高 中间名的权重更低 我找到了命令ISABOUT但如果我必须通过文字而不是专栏来完成它 那
  • 无法在基于 JHipster 的 Web 应用程序中运行从 Gradle BootRepackage 生成的 war

    我正在尝试与java jar生成的war文件 gradlew Pprod bootRepackage The bootRepackage任务成功结束 当我看着project root build libs 文件夹中 war 和 war or
  • 在 postgresql 中搜索数组中的元素而不使用循环

    我正在编写一个查询来搜索数组中的元素 使用 for 循环搜索效率不高 因为我的数组有很多元素 因此 查询需要花费大量时间来执行 那么任何人都可以说如何在没有 for 循环的情况下搜索数组中的元素 这应该更快 我必须获取搜索索引 谢谢 卡西卡
  • 如何修改内核DTB文件

    Summary 我目前正在为定制板编译 Linux 内核 内核 模块和 DTB 以及一些定制驱动程序 有时 我会编译内核并意识到 DTB 文件中的兼容性字符串不是自定义驱动程序正在寻找的内容 现在 我可以解决此问题的唯一方法是修改 DTS
  • 我想我需要一个简单的规则引擎? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 UINavigationController 上推送多个视图控制器时出现内存问题

    我正在为 iPad 制作一本互动书 并且正在使用UINavigationController实现页面与下一页之间的导航 当用户翻页时 下一页被推送到导航堆栈的顶部 我现在已经进入应用程序的 15 页 当我尝试从第 14 页转到第 15 页时
  • 如何重命名 Oracle 过程

    有没有一种方法可以重命名 Oracle 过程 而不必删除并重新创建该过程 不幸的是 没有等效的ALTER TABLE RENAMETO 用于 PL SQL 对象 所以恐怕您将不得不放弃该过程并使用新名称重新创建它 除非使用 SYNONYM
  • RxJava + 改造,获取列表并为每个项目添加额外信息

    我正在玩 RXJava 在 Android 中进行改造 我正在努力完成以下任务 我需要定期轮询一个给我 Observable gt 的调用 从这里我可以做到 一旦我得到这个列表 我想在每个交付中迭代并调用另一个方法来给我预计到达时间 所以只
  • 将“this”传递给 onclick 事件[重复]

    这个问题在这里已经有答案了 可能的重复 当前元素作为其事件函数参数 https stackoverflow com questions 4268085 the current element as its event function pa
  • 数组和结构体可以以不同的方式初始化吗?

    我的问题可能看起来很奇怪 事实上 这是上下文 我目前在切换时遇到一个奇怪的问题 关于我正在从事的项目 核心从pullinino到CV32 也发生了一些其他变化 例如关于crt0 如一些数据内存重置 这是一个 真实的 例子 说明了一个非常简单
  • asp.net 从内容页面更改母版页部分 css

    我的母版页中有以下代码 div div
  • 在 PHP 中为用户创建 CSV 文件

    我在 MySQL 数据库中有数据 我向用户发送一个 URL 以将他们的数据以 CSV 文件形式输出 我已经通过电子邮件发送了链接 MySQL 查询等 当他们点击链接时 我怎样才能弹出一个窗口来下载带有 MySQL 记录的 CVS 我已经掌握
  • 我可以在异步函数的 try/catch 块中使用多个“await”吗?

    i e async asyncfunction try await method1 await method2 catch error console log error 给定 method1 和 method2 是异步函数 每个await
  • 内核源码位置在Buildroot中

    我是 Buildroot 的新人 我有 P2041RDB NXP 板的 Linux 内核源代码 那么我应该将其放置在哪里以及如何在配置中设置此位置 目前无法从 Buildroot 配置中设置内核源代码的路径 您有两种选择 创建文件local
  • 将 ☺ 编码为 IBM-437 失败,而将 é 等其他有效字符编码成功

    gt gt gt bytes ibm437 Traceback most recent call last File