将 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 转义符转换为希伯来语文本 的相关文章

  • shap.TreeExplainer 和 shap.Explainer 条形图之间的区别

    对于下面给出的代码 我得到了不同的条形图shap values 在此示例中 我的数据集为 1000train样本有 9 个类别和 500 个test样品 然后 我使用随机森林作为分类器并生成模型 当我开始生成shap条形图在这两种情况下得到
  • Python 3.6.1 安装位置

    我在 Ubuntu 16 服务器上安装了 Python 3 6 1 但找不到安装位置 我查看了 usr bin 其中提到了除 3 6 1 之外的所有其他版本 在哪里可以找到该版本的可执行文件 使用命令 whereis python3 6 1
  • 如何使用魔杖扭曲图像

    我正在尝试做同样的事情this https stackoverflow com questions 52090350 how to insert image in a mock up老问题但在python using wand 到目前为止我
  • JavaScript 中的巨大字符串替换?

    我有一个小型 JavaScript 应用程序 可以解析用户放入浏览器中的文件 最近我发现一些非英语字符的问题 此处放置的文件类型使用 Windows 1252 字符集 因此诸如 实际上是通过 我必须将它们全部转换为正确的字符 例如 我得到S
  • sklearn ShuffleSplit 出现“__init__() 获得参数 'n_splits' 的多个值”错误

    我正进入 状态 init 获得参数 n splits 的多个值 该行的错误 cv ShuffleSplit n splits 10 test size 0 2 random state 0 在下面的代码中 import matplotlib
  • Python 3.4 十六进制转日语字符

    我目前正在编写一个脚本 从我的网站中提取包含日语字符的信息 到目前为止 我的脚本已从网站上提取数据 它以字符串形式返回 xe5 xb9 xb4 xe3 x81 xab xe4 xb8 x80 xe5 xba xa6 xe3 x81 xae
  • 字典键中的通配符

    假设我有一本字典 rank dict V 1 A 2 V 3 A 4 正如您所看到的 我在一个 V 的末尾添加了一个 虽然 3 可能只是 V 的值 但我想要 V1 V2 V2234432 等的另一个密钥 我想检查它 checker V30
  • While 在范围内循环用户输入

    我有一些代码 我想要求用户输入 1 100 之间的数字 如果他们在这些数字之间输入一个数字 它将打印 Size input 并打破循环 但是 如果他们在外部输入一个数字1 100 它将打印 大小 输入 并继续向他们重新询问一个数字 但我遇到
  • PHP:使用 UTF-8 的 strpos 和 substr

    假设我有一个很长的 UTF 8 编码字符串 并说我想检测是否 var存在于该字符串中 假设 var始终是简单的字母或 ASCII 字符数字 例如 hello123 我不需要使用mb strpos or iconv strpos正确的 因为只
  • 占据花车的地板

    我发现了两种在 Python 中占据发言权的方法 3 1415 1 and import math math floor 3 1415 第一种方法的问题是它返回一个浮点数 即3 0 第二种方法感觉很笨拙而且太长 在 Python 中是否有替
  • 导入错误:无法导入名称“FFProbe”

    我无法获取ffprobe包 https github com simonh10 ffprobe在 Python 3 6 中工作 我使用 pip 安装它 但是当我输入import ffprobe it says Traceback most
  • 使用 NSString 进行 UTF8 解码

    我是 Objective C 新手 尝试使用以下示例将格式错误的 UTF8 编码 NSString 转换为格式良好的字符串苹果文档 http developer apple com library mac documentation Coc
  • Flask-Admin 具有多对多关系中的附加字段

    我有两个表 产品 成分 和 产品成分 class ProductIngredient db Model tablename product ingredient id db Column db Integer primary key Tru
  • 在html表格的每一行添加点击功能

    我最近创建了一个函数 它根据用户在网站中的输入进行一些复杂的名称匹配 并将结果作为表格格式的 html 文件返回 我的问题是如何在每一行添加点击功能 df get cust info returns a pandas dataframe d
  • Delphi 中是否有一些功能可以将带有 html 命名和编号实体的字符串转换为 unicode 文本?

    我从 mysql 数据库读取数据 该数据库由 php 脚本填充 所有特殊字符都会转换为命名或编号的 html 实体 例如 a m p 2 8 6 我知道没有办法将这些字符转换回 Delphi 中的原始字符作为 unicode 字符串 有没有
  • Python 时间序列聚合

    我有一个像这样的数据框 df project ID country prj start prj end revenue profit 2131 USA 201603 201703 100000 30000 5124 UK 201502 20
  • C++ 数组中的多字节 UTF-8

    我在处理数组中的 3 字节 Unicode UTF 8 字符时遇到了问题 当它们位于 char 数组中时 我收到多字符字符常量和隐式常量转换警告 但当我使用 wchar t 数组时 wcout 根本不返回任何内容 由于项目的性质 它必须是数
  • 是否可以模拟 Python 3.6 中的内置 len() 函数?

    是否可以模拟内置len Python 3 6 中的函数 我有一个类定义了一个简单的方法 该方法依赖于len 函数如下 class MyLenFunc object def is longer than three characters se
  • JavaPreparedStatementUTF-8字符问题

    我有一份准备好的声明 PreparedStatement st 在我的代码中 我尝试使用 st setString 方法 st setString 1 userName userName 的值为 ak a setString 方法将 ak
  • Jupyter Notebook:没有名为 pandas 的模块

    我搜索了其他问题 但没有找到任何有帮助的内容 大多数只是建议您使用 conda 或 pip 安装 pandas 在我的 jupyter 笔记本中 我试图导入 pandas import pandas as pd 但我收到以下错误 Modul

随机推荐