将 Unicode 转义符转换为希伯来语文本

2023-12-07

我的 json 文件中有以下文本:

"\u00d7\u0090\u00d7\u0097\u00d7\u0095\u00d7\u0096\u00d7\u00aa 
\u00d7\u00a4\u00d7\u0095\u00d7\u009c\u00d7\u0092"

它代表希伯来语中的文本“אחוזת פולג”。

无论我使用哪种编码/解码,我似乎都无法正确使用 Python 3.

例如,如果我尝试:

text = "\u00d7\u0090\u00d7\u0097\u00d7\u0095\u00d7\u0096\u00d7\u00aa 
\u00d7\u00a4\u00d7\u0095\u00d7\u009c\u00d7\u0092".encode('unicode-escape')

print(text)

我得到的文字是:

b'\\xd7\\x90\\xd7\\x97\\xd7\\x95\\xd7\\x96\\xd7\\xaa \\xd7\\xa4\\xd7\\x95\\xd7\\x9c\\xd7\\x92'

在字节码中是almost正确的文本,如果我能够删除只有一个反斜杠并转动

b'\\xd7\\x90\\xd7\\x97\\xd7\\x95\\xd7\\x96\\xd7\\xaa \\xd7\\xa4\\xd7\\x95\\xd7\\x9c\\xd7\\x92'

into

text = b'\xd7\x90\xd7\x97\xd7\x95\xd7\x96\xd7\xaa \xd7\xa4\xd7\x95\xd7\x9c\xd7\x92'

(注意我如何将双斜杠更改为单斜杠)然后

text.decode('utf-8')

将产生正确的希伯来语文本。

但我正在努力这样做,并且无法设法创建一段代码来为我做到这一点(而不是像我刚刚展示的那样手动......)

非常感谢任何帮助...


该字符串不“表示”希伯来语文本(至少不表示为 unicode 代码点、UTF-16、UTF-8 或任何众所周知的方式)。相反,它表示一个 UTF-16 代码单元序列,这个序列主要由乘号、货币符号和一些奇怪的控制字符组成。

看起来原始字符数据已经使用一些奇怪的编码组合进行了多次编码和解码。

假设这就是 JSON 文件中保存的内容:

"\u00d7\u0090\u00d7\u0097\u00d7\u0095\u00d7\u0096\u00d7\u00aa \u00d7\u00a4\u00d7\u0095\u00d7\u009c\u00d7\u0092"

您可以按如下方式恢复希伯来语文本:

(jsonInput
  .encode('latin-1')
  .decode('raw_unicode_escape')
  .encode('latin-1')
  .decode('utf-8')
)

对于上面的例子,它给出:

'אחוזת פולג'

如果您使用 JSON 反序列化器读取数据,那么您当然应该省略.encode('latin-1').decode('raw_unicode_escape')步骤,因为 JSON 反序列化器已经为您解释转义序列。也就是说,在 JSON 反序列化器加载文本元素后,只需将其编码为latin-1然后将其解码为utf-8。这有效是因为latin-1(ISO-8859-1) 是一种 8 位字符编码,与 unicode 的前 256 个代码点完全对应,而奇怪的损坏文本将 UTF-8 编码的每个字节编码为 UTF-16 代码的 ASCII 转义单元。

我不确定如果您的 JSON 同时包含损坏的转义序列和有效文本,您可以做什么,可能是latin-1不再正常工作了。请不要将此转换应用于您的 JSON 文件,除非 JSON 本身仅包含 ASCII,这只会让一切变得更糟。

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

将 Unicode 转义符转换为希伯来语文本 的相关文章

  • 一次用 \r\n & \n & \r 分解字符串? [复制]

    这个问题在这里已经有答案了 我想按行分割字符串 但我希望它基于所有主要使用的换行符 n r n r 并返回一个包含每一行的数组 您可以使用正则表达式和preg split http php net preg split反而 lines pr
  • PyMC3-自定义 theano Op 进行数值积分

    我使用 PyMC3 进行参数估计 使用必须定义的特定似然函数 我用谷歌搜索了一下 发现我应该使用densitydist实现用户定义的似然函数的方法 但它不起作用 如何在 PyMC3 中合并用户定义的似然函数并找出最大 aposteriori
  • 如何循环遍历字典列表并打印特定键的值?

    我是 Python 新手 有一个问题 我知道这是一个非常简单的问题 运行Python 3 4 我有一个需要迭代并提取特定信息的列表 以下是列表 称为部分 的示例 已截断 数千个项目 state DEAD id phwl type name
  • 如何在Python 3中将文本流编码为字节流?

    将字节流解码为文本流很容易 import io f io TextIOWrapper io BytesIO b Test nTest n utf 8 f readline 在这个例子中 io BytesIO b Test nTest n 是
  • 使用 Python 从 AWS S3 下载文件

    我尝试使用以下代码将文件从 Amazon S3 存储桶下载到本地 但收到错误消息 无法找到凭证 下面给出的是我编写的代码 from boto3 session import Session import boto3 ACCESS KEY A
  • 在 PHP 中比较字符串的方式与 MySQL 相同

    我将 varchar 存储在 utf8 MySQL 表中并使用 utf8 general ci 排序规则 我在 varchar 上有一个唯一索引 我想在 PHP 中进行字符串比较 这相当于 MySQL 对索引所做的操作 一个具体的例子是 我
  • pip 安装最新的依赖版本

    当我使用安装包时pip install e 它仅安装不满足的依赖项并忽略依赖项升级 如何在每次运行时安装最新的依赖版本pip install e 我尝试过使用pip install upgrade e 但是使用这个选项没有任何改变 我仍然得
  • setColumnStretch 和 setRowStretch 如何工作

    我有一个使用构建的应用程序PySide2它使用setColumnStretch用于柱拉伸和setRowStretch用于行拉伸 它工作得很好 但我无法理解它是如何工作的 我参考了 qt 文档 但它对我没有帮助 我被困在括号内的两个值上 例如
  • 从 C++ 调用 Python 脚本并使用其输出

    我想从 C 调用 python 脚本 并希望使用该脚本生成的输出 csv 文件返回 C 我在 main 中尝试过 std string filename home abc xyz script py std string command p
  • 相当于“setup.py”中的“--find-links”

    相当于什么 find links f标记为pip in setup py I know dependency links存在 但这需要指向一个特定的文件 我想要类似的东西 f它可以指向一个链接列表 可以根据版本和操作系统从中选择包 In a
  • Selenium 3 Firefox .click() 不起作用

    自从我升级到最新的 Selenium 版本后 我的 Firefox 驱动程序无法正常工作 未能通过搜索 Google Stack 找到答案 我希望这里有人能找到答案 我已经构建了一个页面对象模型 用于登录网页 单击管理站点并填写用户名 密码
  • 适用于 Python 3.x 的 Hive 客户端

    是否可以使用 Python 3 x 连接到 hadoop 并运行 hive 查询 我正在使用Python 3 4 1 我发现可以按照这里写的方式完成 https cwiki apache org confluence display Hiv
  • Json.dump 失败并显示“必须是 unicode,而不是 str”TypeError

    我有一个 json 文件 其中恰好有大量中文和日文 以及其他语言 字符 我将其加载到我的 python 2 7 脚本中使用io open如下 with io open multiIdName json encoding utf 8 as j
  • Huggingface 变形金刚模块未被 anaconda 识别

    我正在使用 Anaconda python 3 7 Windows 10 我尝试通过安装变压器https huggingface co transformers https huggingface co transformers 在我的环境
  • Python“\x00”填充/来自 cStringIO 的 utf-32 字符串

    通过另一个系统的cStringIO 我通过以下方式编写了一些unicode u content length encode utf 8 在读完这篇文章后 使用unicode stringio fd read utf 8 I get u c
  • 如何创建始终有效的导入?

    我正在努力在我的一个项目中建立一个工作结构 问题是 我有一个像这样的结构的主包和子包 我遗漏了所有不必要的文件 code py mypackage init py mypackage work py mypackage utils py u
  • AIOHTTP - Application.make_handler(...) 已弃用 - 添加多重处理

    我经历了 我可以从 Python Web 服务器中获得多少性能 的旅程 这让我想到了 AIOHTTP 和 uvloop 尽管如此 我仍然可以看到 AIOHTTP 并未充分利用我的 CPU 潜力 我开始将多处理与 AIOHTTP 结合使用 我
  • SMTP 库 Python3:不太安全的应用程序访问

    自 5 月 30 日起 Google 已取消允许不太安全的应用程序访问 G Mail 我正在使用 SMTP 库从我的 Flask 网站发送电子邮件 由于这种方法需要 Google 刚刚删除的功能 所以我陷入了困境 我正在寻找此问题的任何解决
  • Google 地图查询返回的 JSON 包含像 \x26 这样的编码字符(如何解码?)

    在 Java 应用程序中 我获取 JSON 来自 Google 地图 其中包含以下字符 x26我想将其转换为其原始字符 据我所知 这是一个 UTF 8 表示法 但我不完全确定 在源 JSON 中 可能会出现各种编码字符 例如 x3c div
  • 如何在Vim中正确显示UTF-8字符

    我想要 需要编辑包含 UTF 8 字符的文件 并且我想使用 Vim 在我被指责问以前问过的问题之前 我已经阅读了有关编码 文件编码 s 术语编码等的 Vim 文档 用 google 搜索了该主题 并阅读这个问题 https stackove

随机推荐