我有一个列表,我需要通过URL发送给第三方供应商。我不知道他们使用的语言。
列表打印出来像这样:
[u'1', u'6', u'5']
我知道你用utf-8对字符串进行编码吧?所以有几个问题。
我可以通过网址发送列表吗? 通过URL时,你会出现在另一端吗? 如果是这样,我该如何删除它们?
我不确定要搜索哪些关键字来帮助我,所以任何资源也都会有所帮助。
答案 0 :(得分:4)
我可以通过网址发送列表吗?
没有。 URL只是文本。如果您想要一种方法来打包结构化信息,您必须与您正在谈论的提供商达成一致。
URL中结构的一种标准编码,可能是您可能需要的,也可能不是您需要的,是在查询字符串中使用多个具有相同名称的参数。此格式来自HTML表单提交:
http://www.example.com/script?par=1&par=6&par=5
可能被视为代表参数par
,其中包含三项列表作为其值。或者可能不是,由接收者来决定。例如,在PHP应用程序中,您必须为参数par[]
命名,以使其接受数组值。
我知道你用utf-8编码字符串吧?
没有。 u'...'
字符串是本机Unicode字符串,其中每个索引表示整个字符,而不是任何特定编码中的字节。如果您想要UTF-8字节,请在URL编码之前写入u'...'.encode('utf-8')
。 UTF-8是一个很好的默认选择,但同样:接收方想要的编码取决于该应用程序。
在浏览网址时,你是否会出现在另一端?
u
是字符串的文字表示的一部分,与'
引号本身相同。它们不是字符串值的一部分,并且不会被print
或当连接到其他字符串时回显,除非您通过调用repr
故意要求文字表示。
答案 1 :(得分:1)
u''
不是utf-8,它是python 2.x的python unicode字符串
要通过网址发送,你需要使用像.encode('utf-8')
这样的utf8对它们进行编码,并且还需要urlencode,而list不能通过URL发送,你需要将其作为字符串。
基本上,您需要按照以下步骤进行操作
python list - > unicode string - > utf8 string - > url encode - >通过适当的urllib api发送它
答案 2 :(得分:0)
不正确的。 unicode文字使用Python的内部编码,在编译时决定。
您无法发送任何“通过”网址。选择一个协议。并且在发送之前编码,可能是UTF-8。