为了账号安全,请及时绑定邮箱和手机立即绑定

HTML 实体似乎包含无意义内容

HTML 实体似乎包含无意义内容

MMTTMM 2023-10-24 17:07:22
신영 Ã¬â€¢Ë†上面是html,下面是代码。这是一个名字吗?这是什么意思?신옠안
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

您有一个双重 Mojibake,由于使用不正确的编解码器而损坏了数据。


它实际上是韩语,一个名字:


신영 안

或者,如果使用 HTML 实体,则应将其编码为


신영 안

它翻译成英文为Shin-Young An。


当编码为 UTF-8并按输入代码点分组然后使用十六进制数字显示时,您将得到以下结果:


ec 8b a0

ec 98 81

20

ec 95 88

为了产生你所拥有的输出,有人必须具备:


使用Windows 代码页 1252 解码上述 UTF-8 数据,产生


ì‹<A0>ì˜<81> 안

(其中<A0>是不间断空格字符,并且<81>是无效的 CP1252 字节,但这在许多解码器中经常被忽略;我已将它们包含在此表示法中,因为否则它们将无法打印)


将产生的混乱再次编码为 UTF-8,得到以下字节值:


c3 ac e2 80 b9 c2 a0

c3 ac cb 9c c2 81

20

c3 ac e2 80 a2 cb 86

(分组与上面正确的 UTF-8 匹配)


使用相同的 Windows CP1252 编解码器第二次解码这些 UTF-8 字节,这次生成:


ì‹Â<A0>ì˜Â<81> 안

<A0>(与和字符上的注释相同<81>)


最后将结果字符编码为 HTML 实体:


&#195;&#172;&#226;&#8364;&#185;&#194;&#160;&#195;&#172;&#203;&#339;&#194;&#129; &#195;&#172;&#226;&#8364;&#162;&#203;&#8224;

如果您安装了 Python,那么该ftfy库可以一步“修复”文本,如下所示:


>>> import ftfy

>>> sample = '&#195;&#172;&#226;&#8364;&#185;&#194;&#160;&#195;&#172;&#203;&#339;&#194;&#129; &#195;&#172;&#226;&#8364;&#162;&#203;&#8224;'

>>> ftfy.ftfy(sample)

'신영 안'

我使用该库来告诉我使用了哪些编解码器,并使用它的草率 CP1252 解码器来生成上面的解码。


例如,对于您的输入,我使用了:


>>> ftfy.fixes.fix_encoding_and_explain(ftfy.fixes.unescape_html(sample))

('신영 안', [('encode', 'sloppy-windows-1252', 0), ('decode', 'utf-8', 0), ('encode', 'sloppy-windows-1252', 0), ('decode', 'utf-8', 0)])

看到修复计划,并反向解释了 Mojibake 最初是如何生产的。


查看完整回答
反对 回复 2023-10-24
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信