【问题标题】:Sending a List through an URL通过 URL 发送列表
【发布时间】:2010-03-10 14:29:22
【问题描述】:

我有一个需要通过 URL 发送给第三方供应商的列表。我不知道他们使用的是什么语言。

列表打印如下:

[u'1', u'6', u'5']

我知道 u 将字符串编码为 utf-8 对吗?所以有几个问题。

我可以通过 URL 发送列表吗? 通过 URL 时,你会出现在另一端吗? 如果是这样,我该如何删除它们?

我不确定要搜索哪些关键字来帮助我,所以任何资源也会有所帮助。

【问题讨论】:

    标签: python string url unicode


    【解决方案1】:

    我可以通过 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 故意要求文字表示。

    【讨论】:

      【解决方案2】:

      u'' 不是 utf-8,它是 python 2.x 的 python unicode 字符串

      通过url发送,需要像.encode('utf-8')一样用utf8编码,还需要urlencode,list不能通过url发送,需要做成字符串。

      基本上,您需要按照以下步骤进行操作

      python 列表 -> unicode 字符串 -> utf8 字符串 -> url 编码 -> 通过正确的 urllib api 发送它

      【讨论】:

      • sigh 感谢您的帮助,如果我使用 PHP,这将非常简单
      • 您的意图不是很清楚,因为如果没有更多上下文,“通过 URL”发送列表没有多大意义。向我们展示您将如何使用 PHP 进行操作,我们或许可以更轻松地为您提供帮助。
      • 确实,缺乏现代 Unicode 支持是 PHP 的弱点之一。
      【解决方案3】:

      不正确。 unicode 文字使用 Python 的内部编码,由编译时决定。

      您不能“通过”网址发送任何内容。选择一个协议。并在发送前进行编码,可能为 UTF-8。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-06
        • 1970-01-01
        • 2013-09-19
        • 1970-01-01
        • 2013-06-21
        • 2014-02-07
        • 2011-06-10
        • 1970-01-01
        相关资源
        最近更新 更多