+ -
当前位置:首页 → 问答吧 → 被python的中文问题搞的头大

被python的中文问题搞的头大

时间:2011-04-04

来源:互联网

Python code
url = "http://127.0.0.1/yzh_backdoor.php?action=new"    #脚本地址
    post = {"atc_title":c[G_MAP['title']],"atc_content":c[G_MAP['content']],"atc_tags":c[G_MAP['tags']],"step":2,"fid":c[G_MAP['fid']]}
    #print post
    search = urllib.urlencode(post)
    req = urllib2.Request(url)
    fd = urllib2.urlopen(req,search)


其中post的内容是{'step': 2, 'atc_content': u'\u6211\u53eb\u6709\u79cd\u4f1a,\u4f60\u662f\u8c01', 'atc_title': u'\u4f60\u597d', 'fid': 1, 'atc_tags': u'\u4e2d\u6587'}

报错:
search = urllib.urlencode(post)
  File "G:\Python25\lib\urllib.py", line 1250, in urlencode
  v = quote_plus(str(v))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-4: ordinal not in range(128)

如果是英语就没事了
头大......

作者: zxcv8356631   发布时间: 2011-04-04

这个说是换3.X版本就没问题 因为3.X版本默认编码不是ascii。

作者: a590687   发布时间: 2011-04-05

在文件开头加个#encoding:utf8试试看

作者: cangyingzhijia   发布时间: 2011-04-05

我一般是文件开头加:
#coding:utf-8
有中文的字符串前加u,有时不用加,我也搞不懂如:
u"sssss中文dd"

作者: jo39428   发布时间: 2011-04-05