bootstrapTable搜索中文乱码问题
bootstrapTable在请求方式为get
时,在其提供的输入框中输入中文,会出现后台获取到的是乱码的字符的现象。
其解决方式有两种:
更改Tomcat的URI编码方式。
具体为:进入Tomcat目录,进入conf文件夹,打开server.xml文件(最好先进行一次备份),找到自己请求的连接头对应的代码,如:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
在其中加上
URIEncoding="UTF-8"
属性,更改为:<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8" />
这样就解决这个问题了。
更改bootstrapTable的请求方式。
一开始其实也说了是在请求方式为
get
的情况下才会出现这种问题,结合上面的解决方式,很容易就能了解到,是由于get请求发向Tomcat时,由于Tomcat的默认URI编码并非为UTF-8, 因此出现的这个问题。那么在不更改Tomcat的情况下解决这个问题的方法就很清楚了,将bootstrapTable 的请求方式从get
更改为post
即可。具体就是将bootstrapTable中的method参数的值设置为post
,如下:$("#table").bootstrapTable({ method: "post", url: "获取后台数据的url", ... ... });
当然,其实光这样该还不够,因此这样改完后会发现后台就接收不到数据了,这是由于使用post请求后,其不能继续使用原有默认发送到服务器的数据编码类型, 在上面的语句中再添加一句:
contentType:"application/x-www-form-urlencoded"
(如下),即可。$("#table").bootstrapTable({ method: "post", url: "获取后台数据的url", contentType:"application/x-www-form-urlencoded", ... ... });