这不是thinkphp的问题,是浏览器和你的程序共同导致的,有的浏览器会将连接中的url编码自动转换成明码,这样,你的程序拿到的关键词是明码的关键词,再进行url转码就会出现乱码。浏览器这里我们没法控制,可以考虑将关键词以base64形式传递,这样就不会有此问题了,只需要修改下搜索控制器就好了。