近期開發一個在線坐席的功能。發現推送的消息中空格變成了+ 。查詢發現URLEncoder.encode的問題。曾經用的時候也沒注意過,解決的方法網上是對URLEncoder.encode的之后的字符串進行替換+號,這樣的方式假設真的有+號那也被替換了。所以應該在URLEncoder.encode方法之前對字符串進行替換。然后到了頁面上在對其進行替換回來
代碼:
java中URLEncoder.encode之前進行替換:
//解決urlecode空格問題
message=message.replaceAll(" ", "%20");
event.setField("msg", URLEncoder.encode(message,"UTF-8"));
jsp頁面對界面后的字符串進行替換:
context=decodeURIComponent(context);
f(null!=context&&"undefined"!=context){
//轉化所有的空格 %20——空格
context=context.replace(/%20/g," ");
//....
}