下載下傳檔案到前端的時候,第一層背景生成pdf檔案的時候ajax用post方式沒亂碼。
第二層為了調用renderFile的時候一直亂碼。是
在jFinal技術開發中,經常遇到傳輸資料時會出現中文亂碼的問題。在這裡我提供一些亂碼問題的解決辦法:
方法一:
修改tomcat伺服器下的conf檔案夾下的service.xml檔案。
需要修改的地方1: <!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443"/>
需要修改的地方2:<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
修改完成之後儲存再重新開機伺服器,基本上亂碼問題就會解決。
方法二:
String leixing = URLDecoder.decode(getPara(1),"UTF-8");如左這樣轉換即可。
來吐槽一個問題,get方法 getPara 會中文亂碼,隻能手動處理嗎? post方法是OK的,但是就想用get呢? 不是一般都有亂碼過濾器的嗎?
試了一下,擷取到的是iso-8859-1,說明并沒有經過亂碼過濾器處理。
String kw = inv.getController().getPara("kw");
System.out.println(new String(kw.getBytes("iso-8859-1"), "utf-8"));
貌似也是沒辦法的,因為get方法的話,盡管可以有個過濾器處理掉get,但是怎麼樣把處理後的結果扔回request?
http 協定對于 url 的設計就是這麼做的,url 中不支援使用中文,傳遞中文都是通過 post 請求,這個 jfinal 也沒法去改變