BootStrap table 搜索中文亂碼問題java
1.bootstrapTable在請求方式爲get
時,在其提供的輸入框中輸入中文,會出現後臺獲取到的是亂碼的字符的現象。spring
有兩種方式解決這個問題:能夠在Tomcat上更改URL 的編碼方式:bootstrap
進入Tomcat目錄,進入conf文件夾,打開server.xml文件(最好先進行一次備份),找到本身請求的鏈接頭對應的代碼:tomcat
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" />
在其中加上URIEncoding="UTF-8"
屬性.app
2.由於請求方式爲get,因此出現這個問題,能夠在其屬性裏面,把method改成post,同時,還要加上contentType:"application/x-www-form-urlencoded"
:更改以下:框架
$("#table").bootstrapTable({ method: "post", url: "獲取後臺數據的url", contentType:"application/x-www-form-urlencoded", ... ... });
2.bootstrap裏面的請求方式爲get,出現中文亂碼的問題,post
一個是修改tomcat配置文件conf/server.xml,在 <Connector port="8082" protocol="HTTP/1.1" 中加入 URIEncoding="utf-8"的編碼集;編碼
另外一個是前臺對中文進行編碼時,能夠在js裏面調用encodeURI(url),將url編碼,而後請求。url
後臺這樣寫:String str = new String(request.getParameter("param").getBytes("iso8859-1"),"UTF-8"); 在框架的使用中:request.setCharacterEncoding(encoding);只對post請求有效。因此spring的filter配置不做用於get參數接收。spa
3.後臺接受中文參數亂碼處理的方法(搜索功能帶參數)
encodeURI(encodeURI(params)):
兩次encodeURI的原理:
第一次編碼獲得的是UTF-8形式的URL,第二次編碼獲得的依然是UTF-8形式的URL,可是在效果上至關於首先進行了一 次UTF-8編碼
再進行了一次iso-8859-1編碼,由於對英文字符來講UTF-8編碼和ISO- 8859-1編碼的效果相同。
後臺處理的話,是這樣的,先獲取到搜索的參數,而後咱們判斷一下,這個參數是否爲空, !StringUtil.isempty(參數)是否爲空,接着進行的是:
params = urldecode .decode(params,"utf-8");