2010-03-10 176 views
2

我有一個需要通過URL發送給第三方供應商的列表。我不知道他們在用什麼語言。通過URL發送列表

名單打印出來是這樣的:

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

我知道ü編碼爲UTF-8正確的字符串?所以有幾個問題。

我可以通過URL發送一個列表嗎? 當你瀏覽網址時,你會在另一端顯示嗎? 如果是這樣,我該如何刪除它們?

我不確定要搜索哪些關鍵字來幫助我,所以任何資源都會有幫助。

回答

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故意要求字面表示。

+0

+1簡明解釋 – YOU

1

u''不是UTF8,其爲Python 2.x的

要通過URL發送蟒蛇unicode字符串,你需要用UTF-8編碼他們像.encode('utf-8'),並且還需要進行urlencode,並列出不能發它通過URL,你需要把它作爲字符串。

基本上,你需要做的是在下面的步驟

Python列表 - > unicode字符串 - > UTF8字符串 - > URL編碼 - >通過適當的urllib API

+0

*嘆*感謝您的幫助,如果我使用PHP – KacieHouser

+0

感謝您的意圖不是很清楚,因爲發送列表「通過URL」沒有更多的上下文沒有多大意義。向我們展示如何在PHP中實現它,並且我們可能會更輕鬆地爲您提供幫助。 –

+3

事實上,缺乏現代Unicode支持是PHP最弱點之一。 – bobince

0

不正確的發送。 unicode字面量使用Python的內部編碼,在編譯時決定。

您無法通過URL發送任何內容。改爲選擇一個協議。並在發送前進行編碼,可能是UTF-8。