【发布时间】:2013-04-29 13:00:03
【问题描述】:
我有这个字符串:
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.1,而urllib.parse.unquote(s) 仅将%xx 转换为它们的Unicode 字符表示。但是,它不会将 \uxxxx 转换为它们的 unicode 字符表示。例如,\u0026 应转换为 &。
如何同时转换它们?
【问题讨论】:
-
我可以理解想要解码这个,但是是什么让你认为你需要“转换为 ASCII”?
-
我正在解析字符串,并且想要拆分它。
-
你也可以解析 Unicode 字符串。
-
@doomster:
\u0026使字符串难以理解。&如果我先转换它会好得多。我正在学习 Python,所以这对我很重要。 -
嗯,有一个 Unicode 字符
'\u20ac'恕我直言,比 9 个字符 '%e2%82%ac' 更容易解析,每个字符都可以出现在其他字母的表示中。
标签: python string unicode python-3.x