2008年10月16日 星期四

python unicode encode & url encode

顯示unicode編碼後的byte

例如 "科"的nuicode碼是"\u79d1"

(u"abc我是中文123").encode("unicode-escape")

---->abc\u6211\u662f\u4e2d\u6587123


2.再來是如何顯示urlencode之後的編碼
import urllib

urllib.quote("a=1&b=22&c=333")

---->%3D1%26b%3D22%26c%3D333


高階應用範例:

source=u"""
"Label":["20081014","2008年10月14日"]
"""

output1=urllib.quote(source.encode("unicode-escape")) #先轉成unicode byte輸出 然後在urlencoe
output2=urllib.unquote(output1).decode("unicode-escape") #把上一步的結果urldecode回來 然後再把unicode byte轉回中文字

self.response.out.write("source= "+source)
self.response.out.write("output1= "+output1)
self.response.out.write("output2= "+output2)



輸出:

=>source= "Label":["20081014","2008年10月14日"]

=>output1= %5Cn%20%20%20%20%22Label%22%3A%5B%2220081014%22%2C%222008%5Cu5e7410%5Cu670814%5Cu65e5%22%5D%5Cn%20%20%20%20

=>output2= "Label":["20081014","2008年10月14日"]