返回十六进制符号

2024-04-20 08:13:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个不和谐.pybot和当前将此代码用于youtube命令并返回youtube中的前5首歌曲

 for v in videolist:
    youtube  = etree.HTML(urlopen(v).read())
    video_title = youtube.xpath("//span[@id='eow-title']/@title")
    v_t = ''.join(video_title)
    vt.append(v_t)
  names = vt[1:6]
  await bot.say(vt)

这将获取所有歌曲的视频标题。你知道吗

现在并不是说这不起作用,而是我得到了以下输出(简称

`['Yowamushi Pedal - Love Hime Opening [Full Song]', 'Koi no Hime Hime Pettankoã\x80\x8cæ\x81\x8bã\x81®ã\x83\x92ã\x83¡ã\x83\x92ã\x83¡ã\x81ºã\x81£ã\x81\x9fã\x82\x93ã\x81\x93ã\x80\x8dæ\xad\x8cã\x81£ã\x81¦ã\x81¿ã\x81\x9fã\x80\x90ï¼\x8aã\x81ªã\x81¿ã\x82\x8aã\x82\x93ã\x80\x91', '~ hime hime `:

如果您没有注意到编码错误/问题,那么这里就是这个看起来很垃圾的东西:\x81\x93ã\x80\x8dæ\xad\x8cã\x81£ã\x81¦ã\x81¿ã\x81\x9fã\x80\x90ï¼\x8

如何让python返回正确的符号istead这个十六进制代码??任何信息将是伟大的和欢迎的!你知道吗


Tags: 代码titleyoutubevideox82vtx81x80
2条回答

以下是以UTF-8编码的日语字符串的十六进制值:

e3, 80, 8c, e6, 81, 8b, e3, 81, ae, e3, 83, 92, e3, 83, a1, e3, 83, 92, e3, 83, a1, e3, 81, ba, e3, 81, a3, e3, 81, 9f, e3, 82, 93, e3, 81, 93, e3, 80, 8d, e6, ad, 8c, e3, 81, a3, e3, 81, a6, e3, 81, bf, e3, 81, 9f, e3, 80, 90, ef, bc, 8a, e3, 81, aa, e3, 81, bf, e3, 82, 8a, e3, 82, 93, e3, 80, 91

如果你眯一点眼睛,你就能看到里面的“垃圾东西”。你知道吗

“默认修复”似乎工作得很好,即从ISO 8859-1重新编码为UTF-8:

对于此输入:

s = 'Koi no Hime Hime Pettankoã\x80\x8cæ\x81\x8bã\x81®ã\x83\x92ã\x83¡ã\x83\x92ã\x83¡ã\x81ºã\x81£ã\x81\x9fã\x82\x93ã\x81\x93ã\x80\x8dæ\xad\x8cã\x81£ã\x81¦ã\x81¿ã\x81\x9fã\x80\x90ï¼\x8aã\x81ªã\x81¿ã\x82\x8aã\x82\x93ã\x80\x91'

此代码:

s.encode('latin-1').decode('utf-8')

生成此输出:

'Koi no Hime Hime Pettanko「恋のヒメヒメぺったんこ」歌ってみた【*なみりん】'

我不知道你的机器人正在做什么,但它得到的文本在默认的iso8859-1编码,而不是解码UTF-8正确。你知道吗

您是否尝试过隐式转换为Unicode? 例如:

    a = u"[狂おしく咲いた凄惨な骸は奏で、愛おしく裂いた少女は聖餐の詞を謳う。 #10] 謳"

这使得字符串Unicode受支持,可能会解决您的问题

相关问题 更多 >