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