解決幾種中文亂碼的問題

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");
相關文章
相關標籤/搜索