在url中直接传递中文,必然乱码啊。不管你是否设置了utf-8格式的编码也会乱。你在后台接收query的话,要转一下。一般转码是这样的:1、先得到query的值。 2、 String str = new String(query.getBytes("iso8859-1"),"utf-8");
用了URLdecode就好了 from urllib import quote if __name__ == "__main__": all_the_text = readfile("/data/words.txt") words = all_the_text.split(",") for word in words: m = re.match(r'%EF%BB%BF(.*)', quote(word)) alterword = quote(word) print(word) if m: alterword = m.group(1) url = "http://www.sogou.com/web?query=" print(url+alterword)
#coding=utf-8
import os,re,time,json,shutil,StringIO,traceback
url = "http://www.sogou.com/web?query=苹果电脑"
crawlerProp.setWebsite((url))
这个参数别这么直接传中文啊,先编码,然后到java那再解码!
把这个url用urlencode编码,或者其他的方式编码之后再传过去。直接传中文,和库实现、本地平台编码方式有关,这个就变得不可控了
这个是加密之后的呈现结果,有些浏览器会自动加密,有些不会,所以为了统一协调,传递中文参数前统一加密,后台在解密就好了。
phyon和java肯定要按指定相同规则进行编码解码的。
用了URLdecode就好了
from urllib import quote
if __name__ == "__main__":
all_the_text = readfile("/data/words.txt")
words = all_the_text.split(",")
for word in words:
m = re.match(r'%EF%BB%BF(.*)', quote(word))
alterword = quote(word)
print(word)
if m:
alterword = m.group(1)
url = "http://www.sogou.com/web?query="
print(url+alterword)