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

在 Python 中将十六进制 NCR 文本表示转换为 Unicode

在 Python 中将十六进制 NCR 文本表示转换为 Unicode

Helenr 2021-11-09 15:14:53
我有一个从中文网页解析出来的字符串:若き葉末には風が立ち 森は翡翠の息を返す 雲の切れ間から注ぐ 光に君を見初めん碧き瞳のほほえむとき そは鐘のひびき胸に打つ さしのべた腕に絡む 蔦の葉に君を逃す残る 香り 水面をかけゆく恋の舟 つかの間の波に 揺られやさしき幻影 心に映るその姿よ 永遠なる君に 想いを捧げん若き葉末には風は眠り 森は密やかに息を止む 抱きしめた腕のなかで 静かに君は消えゆく月は 満ちて 黄金の羽根が舞いおちる 我はただひとり森に祈りたまえや我想将此字符串转换为其适当的 unicode 格式。从我的研究中,我已经能够收集到例如一映射到 unicode string b'\\u4e00'。这可以通过在字符串的开头剥离&#x和添加前缀 a\\u以及将整个内容小写并通过b在字符串前添加 a 转换为字节串来手动完成。这是在这个repo 中完成的,但是通过代码使用低效的 eval 函数,例如eval("b'\\u4e00").[编辑:上面的段落是不正确的。它不是字节串,而是 python2 中存在的 unicode 字符串。正确的映射是一-> u'\u4e00']有一个更好的方法吗?
查看完整描述

1 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

看看html标准库中的模块:


>>> import html

>>> html.unescape('Je me levais tôt')

'Je me levais tôt'

>>> html.unescape('若き葉末には')

'若き葉末には'

结果是一个 Unicode 字符串(str在 Python 3 中输入)。请注意,该b'...'符号用于字节字符串。b'\\u4e00'您示例中的文字没有多大意义,因为它是一个包含 6 个字符(\、u、4、e、0、0)的字节字符串。您可能指的是'\u4e00'(或u'\u4e00'在 Python 2 中),它是一个单字符 Unicode 字符串。


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 341 浏览
慕课专栏
更多

添加回答

举报

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