您的位置:首页 > 编程语言 > Python开发

post时处理中文字符

2014-07-16 17:18 246 查看
做个一个网页信息的查询,很无奈的发现POST信息中的中文部分错误。试了很多方法后发现,把信息转换成uft8格式问题解决

name = name.decode('cp936').encode('utf8')

完整代码:

# -*- coding: cp936 -*-

import re
import urllib
import urllib2

url = r'http://xxx.xxx.xxx'

def getMsg(respose):
pat = r'{"result":(\d+),"resultstr":"(\w+)","Ans":{"m_NickName":"(.*)","m_Uid":"(\d+)","m_Level":(\d+),"m_Exp":(\d+),"m_VIPLevel":(\d+),"m_Gold":(\d+),"m_SuperGold":(\d+),"m_HonourCount":(\d+),"m_Salary":(\d+),"m_Energy":(\d+),"m_ReputationCount":(\d+),"m_point":(\d+),"m_TacticsExp":(\d+)}}'
m = re.match(pat,respose)
return m

def showMsg(m):
print '='*20
print '角色名称 :',m.group(3)
print '角色uid :',m.group(4)
print '角色等级 :',m.group(5)
print '角色超级币:',m.group(9)
print '角色资金 :',m.group(8)
print '角色VIP :',m.group(7)
print '角色荣誉 :',m.group(10)
print '角色经验 :',m.group(6)
print '角色体力 :',m.group(12)
print '角色声望 :',m.group(13)

def main():
name = raw_input('输入角色名称:')
<span style="color:#ff0000;">name = name.decode('cp936').encode('utf8')</span>
value ={
'AreaID':'1',
'Name':name,
}
data = urllib.urlencode(value)
req = urllib2.Request(url,data)
response = urllib2.urlopen(req)
page = response.read()
if (page == '{"result":-1,"resultstr":"fail"}'): print '无法查询到用户信息'
else:showMsg(getMsg(page))

main()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python