最近,使用bootstrapTable進(jìn)行畫表,在頁面進(jìn)行條件查詢的時候,碰到了一個問題:如果條件查詢參數(shù)有中文的話,傳輸?shù)胶笈_會變?yōu)閬y碼,導(dǎo)致查詢過程中,沒有查詢結(jié)果出來.
經(jīng)過一步步排查,發(fā)現(xiàn)出現(xiàn)該問題的幾個地方,如下:
1. tomcat編碼格式未設(shè)置,或者非utf-8;
2. 頁面接口獲取方式使用的get方法,或者bootstrapTable默認(rèn)方法;
3. jsp頁面設(shè)置的編碼格式非utf-8.
解決方法由以下幾種:
1. ?更改tomcat的server.xml文件,在<Connector>標(biāo)簽中添加或修改編碼規(guī)則:URIEncoding="UTF-8";
?2. 在初始化table時,添加或修改請求類型method: "post",和contentType:"application/x-www-form-urlencoded";
3. 更改jsp頁面的編碼格式.
綜合來說:本地測試環(huán)境很容易去更改各種配置,但是上到生產(chǎn)環(huán)境,隨意更改tomcat的編碼格式就需要非常小心了,所以個人傾向推薦方法2,在初始化table過程中,修改請求類型和數(shù)據(jù)發(fā)送方式.