gpt4 book ai didi

python - 使用 Python 3.3.1 将 Unicode 代码点转换为 Unicode 字符

转载 作者:行者123 更新时间:2023-11-28 21:24:10 26 4
gpt4 key购买 nike

我有这个字符串:

sig=45C482D2486105B02211ED4A0E3163A9F7095E81.4DDB3B3A13C77FE508DCFB7C6CC68957096A406C\u0026type=video%2F3gpp%3B+codecs%3D%22mp4v.20.3%2C+mp4a.40.2%22\u0026quality=small\u
0026itag=17\u0026url=http%3A%2F%2Fr6---sn-cx5h-itql.c.youtube.com%2Fvideoplayback%3Fsource%3Dyoutube%26mt%3D1367776467%26expire%3D1367797699%26itag%3D17%26factor%3D1.25%2
6upn%3DpkX9erXUHx4%26cp%3DU0hVTFdUVV9OU0NONV9PTllHOnhGdTVLUThqUWJW%26key%3Dyt1%26id%3Dab9b0e2f311eaf00%26mv%3Dm%26newshard%3Dyes%26ms%3Dau%26ip%3D49.205.30.138%26sparams%
3Dalgorithm%252Cburst%252Ccp%252Cfactor%252Cid%252Cip%252Cipbits%252Citag%252Csource%252Cupn%252Cexpire%26burst%3D40%26algorithm%3Dthrottle-factor%26ipbits%3D8%26fexp%3D9
17000%252C919366%252C916626%252C902533%252C932000%252C932004%252C906383%252C904479%252C901208%252C925714%252C929119%252C931202%252C900821%252C900823%252C912518%252C911416
%252C930807%252C919373%252C906836%252C926403%252C900824%252C912711%252C929606%252C910075%26sver%3D3\u0026fallback_host=tc.v19.cache2.c.youtube.com

如您所见,它包含两种形式:

  • %xx。例如,%3%2F
  • \uxxxx。例如,\u0026

我需要将它们转换成它们的 unicode 字符表示形式。我使用的是 Python 3.3.1urllib.parse.unquote(s) 仅将 %xx 转换为其 unicode 字符表示形式。但是,它不会将 \uxxxx 转换为其 unicode 字符表示形式。例如,\u0026 应转换为 &

如何转换它们?

最佳答案

两种选择:

  • 选择将其解释为JSON;该格式使用相同的转义码。输入确实需要用引号引起来才能被视为字符串。

  • 编码为 latin 1(以保留字节),然后使用 unicode_escape 编解码器解码:

    >>> urllib.parse.unquote(sig).encode('latin1').decode('unicode_escape')
    '45C482D2486105B02211ED4A0E3163A9F7095E81.4DDB3B3A13C77FE508DCFB7C6CC68957096A406C&type=video/3gpp;+codecs="mp4v.20.3,+mp4a.40.2"&quality=small&itag=17&url=http://r6---sn-cx5h-itql.c.youtube.com/videoplayback?source=youtube&mt=1367776467&expire=1367797699&itag=17&factor=1.25&upn=pkX9erXUHx4&cp=U0hVTFdUVV9OU0NONV9PTllHOnhGdTVLUThqUWJW&key=yt1&id=ab9b0e2f311eaf00&mv=m&newshard=yes&ms=au&ip=49.205.30.138&sparams=algorithm%2Cburst%2Ccp%2Cfactor%2Cid%2Cip%2Cipbits%2Citag%2Csource%2Cupn%2Cexpire&burst=40&algorithm=throttle-factor&ipbits=8&fexp=917000%2C919366%2C916626%2C902533%2C932000%2C932004%2C906383%2C904479%2C901208%2C925714%2C929119%2C931202%2C900821%2C900823%2C912518%2C911416%2C930807%2C919373%2C906836%2C926403%2C900824%2C912711%2C929606%2C910075&sver=3&fallback_host=tc.v19.cache2.c.youtube.com'

这解释了 \u 转义码,就像 Python 在读取 Python 源代码中的字符串文字时所做的那样。

关于python - 使用 Python 3.3.1 将 Unicode 代码点转换为 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16387450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com