首页 > 试题广场 >

有一段python的编码程序如下:urllib.quote(

[单选题]
有一段python的编码程序如下,请问经过该编码的字符串的解码顺序是( )
urllib.quote(line.decode("gbk").encode("utf-16"))

  • gbk utf16 url解码
  • gbk url解码 utf16
  • url解码 gbk utf16
  • url解码 utf16 gbk
字符串编译的过程:gbk==>unicode==>utf16==>url解码
字符串解码顺序为:url解码==>utf16==>unicode==>gbk
发表于 2017-09-26 16:19:41 回复(10)
题目中的代码是一个编码过程:
编码:decode() 
解码:encode() 
url编码:urllib.quote() 
line.decode("gbk") 可知 line 是 gbk 编码的

编码过程:
line -> 解码 gbk -> 编码 utf-16 -> 编码 url

解码过程(与编码过程相反):
解码 url -> utf-16 -> gbk
发表于 2019-07-09 17:25:22 回复(11)
D
审题:请问 经过该编码 的字符串的 解码顺序
发表于 2017-01-08 17:54:27 回复(4)
没看仔细题目选了A的有多少😗
发表于 2019-05-15 16:11:36 回复(2)
字符串编码方式变化过程如下:gbk -->unicode --> utf16 --> url编码
经过此过程的字符串的解码顺序为:url编码 --> utf16 --> unicode --> gbk
因此选 D
发表于 2016-08-08 17:38:17 回复(3)
url在发送前为防止服务器无法识别或者歧义,会对url进行编码:
不同的编码规则定义了不同的安全字符集(特殊用途不需进行编码),以google搜索中文为例(https://www.google.com/search?q=中文),“中文”会被默认utf-8编码(一个中字三个字节 十六进制e4b8ad e69687),然后再url编码(%加上十六进制 %e4%b8%ad%e6%96%87)

本题中line本身是按照gbk存储的,先经过gbk解码成unicode类型对象,再经过utf-16重新编码,最后经过url编码加上%。解码过程正好相反。
编辑于 2019-05-15 15:45:54 回复(0)
D,先将line解码为gbk编码格式,在编码为utf-16,在进行url编码,故经过quote()编码过后的字符串的解码顺序因该是D

发表于 2015-11-20 21:21:11 回复(6)
编码过程:
            一   ,line先用decode()被GBK进行解码,解码成为人能识别的自然语言(明文)
            二   ,被GBK编码后的明文通过encode()被UTF-16进行编码,编码成为机器识别的字节
            三   ,编码后的语言又被Url进行了解码
    因此,编码过程应该为:GBK   UTF-16   URL
     对应的解码顺序与编码顺序相反应该为:URL   UTF-16  GBK

注意他的解码顺序和编码顺序是正好相反的,我刷到两次这道题,全是因为误看成是编码顺序错了.
发表于 2020-05-12 20:18:02 回复(0)
字符串编译的过程:gbk==>unicode==>utf16==>url解码
字符串解码顺序为:url解码==>utf16==>unicode==>gbk
发表于 2018-08-10 10:26:55 回复(0)
题目中的代码是一个编码过程: 编码:encode()  解码:decode()  url编码:urllib.quote()  line.decode("gbk") 可知 line 是 gbk 编码的 编码过程: line -> 解码 gbk -> 编码 utf-16 -> 编码 url 解码过程(与编码过程相反): 解码 url -> utf-16 -> gbk
发表于 2021-05-05 23:45:02 回复(0)
编码:encode() 
解码:decode() 

urllib.quote(line.decode("gbk").encode("utf-16"))
url编码:urllib.quote() 
line.decode("gbk") 可知 line 是 gbk解码的 

编码过程: 
line -> 解码 gbk -> 编码 utf-16 -> 编码 url

解码过程(与编码过程相反):
解码 url -> utf-16 -> gbk
发表于 2020-03-23 09:13:13 回复(0)
encode是不是编码顺序呢,题目问的是解码顺序,所以,应该选D
发表于 2015-10-11 13:48:11 回复(0)
D
发表于 2015-01-12 22:08:55 回复(0)
注意审题,是解码顺序,而题目给出的是编码;注意quote() 是对url的编码,unquote()是对url的解码
发表于 2022-01-03 21:03:08 回复(0)
字符串编译的过程:gbk==>unicode==>utf16==>url解码 字符串解码顺序为:url解码==>utf16==>unicode==>gbk
发表于 2019-12-19 11:21:14 回复(0)
问的是解码顺序,捂脸
发表于 2019-04-15 22:51:06 回复(0)
这道题目考察的是编码和解码的知识点,但是问题和答案有点奇怪。
Python2中urllib2.quote(Str)
Python3中urllib.parse.quote(Str),二者都接收字符串,将其转换为Url可识别的字符串。
line应该是字节,先以gbk解码,再以utf-16编码,再进行quote编码。
额外说一点,一般是用什么格式编码,就用什么格式解码,除非用编码进行加密,否则没有必要这样。
编辑于 2019-03-19 13:30:12 回复(1)
审题的时候就很懵,
多读了几遍才明白。

假设line2=urllib.quote(line.decode("gbk").encode("utf-16"))
然后这个题的意思就很明了了:
经过该编码的字符串的解码顺序
"经过该编码的字符串"就等于line2
"解码顺序"就是line2要解码还原成line的顺序

编辑于 2018-11-06 19:37:19 回复(0)
提供一个记忆方式,元组比较类似    非科班不懂编译原理。。
编译时   gbk>unicode>utf16  有文字的在最后。。url解码
解码反之。
发表于 2018-10-28 19:42:40 回复(0)
计算机内存中,统一使用Unicode编码;当需要保存到硬盘或者需要传输的时候,再转换为e.g. UTF.
发表于 2018-09-17 10:19:22 回复(0)