我想在Python中編碼,存儲和解碼參數,並在途中丟失某處。這裏是我的步驟:使用Python進行URL編碼/解碼
1)我使用谷歌工具包的gtm_stringByEscapingForURLArgument
正確地轉換NSString傳遞到HTTP參數。我注意到這些字符串參數是u'1234567890-/:;()$&@".,?!\'[]{}#%^*+=_\\|~<>\u20ac\xa3\xa5\u2022.,?!\''
(請注意,這些是「123」視圖和「#+ =」視圖中的iphone鍵盤上的標準鍵,這些鍵是在我的服務器(python) \u
和\x
字符在那裏是一些貨幣前綴像英鎊,日元等)
3)我叫urllib.quote(myString,'')
上存儲的值,想必%-escape它們運輸到客戶端,以便客戶端可以unpercent逃避它們。
結果是,當我嘗試記錄%轉義的結果時,出現異常。是否有一些關鍵的步驟,我忽略了,需要用\ u和\ x格式將存儲值應用於存儲值以正確轉換爲通過http發送?
更新:標記爲下面答案的建議適用於我。不過,我提供了一些更新來解決下面的評論。
我收到的例外引用了\u20ac
的問題。我不知道這是否與這個問題有關,而不是它是該字符串中的第一個unicode字符。
\u20ac
char是歐元符號的Unicode。我基本上發現我會遇到問題,除非我使用urllib2 quote
方法。
請儘可能提供異常詳情和跟蹤。 – 2010-08-25 06:06:12
看來你的字符串不是一個有效的Unicode字符串。我試圖簡單地打印它,它給了我\ u20ac字符的編碼錯誤。 – 2010-08-25 07:05:39