国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Android - Android編程向服務(wù)器發(fā)送請求時出現(xiàn)中文亂碼問題的解決方法

Android編程向服務(wù)器發(fā)送請求時出現(xiàn)中文亂碼問題的解決方法

2021-04-14 14:58段殘夢 Android

這篇文章主要介紹了Android編程向服務(wù)器發(fā)送請求時出現(xiàn)中文亂碼問題的解決方法,實例分析了Android參數(shù)傳遞過程中中文亂碼的解決技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Android編程向服務(wù)器發(fā)送請求時出現(xiàn)中文亂碼問題的解決方法。分享給大家供大家參考,具體如下:

我們在andorid項目中通過get方式向服務(wù)器發(fā)送請求,其中url參數(shù)帶有中文,將會產(chǎn)生亂碼,亂碼產(chǎn)生的原因有兩種:

1、 在提交參數(shù)時,沒有對中文參數(shù)進行URL編碼

2、 Tomcat服務(wù)器默認采用的是IOS8859-1編碼(不支持中文)得到參數(shù)值

解決:

1、 進入android項目,在其中要提交參數(shù)的時候,對參數(shù)的值進行編碼:

URLEncoder.encode(value, 編碼方式); //"UTF-8"

2、 通過IOS8859得到字符串的二進制數(shù)據(jù),然后再通過UTF-8得到新的字符串即可。

String title = new String(value.getBytes("ISO8859-1","UTF-8");

如果整個web項目中所有請求都要采用上面的方式來解決編碼問題將會比較麻煩,可以采用過濾器來解決。

 

新建filter,設(shè)置對所有的路徑都過濾,那么URL Pattern為:/*,其中每次請求到來的時候都會調(diào)用doFilter方法,具體的代碼如下

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
  HttpServletRequest req = (HttpServletRequest) request;
  if("GET".equals(req.getMethod())){
   EncodingRequestWrapper wrapper = new EncodingRequestWrapper(req);
   chain.doFilter(wrapper, response);
  }else{
   req.setCharacterEncoding("UTF-8");
   chain.doFilter(request, response);
  }
}

其中 EncodingRequestWrapper代碼:

public class EncodingRequestWrapper extends HttpServletRequestWrapper {
private HttpServletRequest request;
public EncodingRequestWrapper(HttpServletRequest request) {
  super(request);
  this.request = request;
}
@Override
public String getParameter(String name) {
  String value = request.getParameter(name);
  if(value!=null){
   try {
    value = new String(value.getBytes("ISO8859-1"), "UTF-8");
   } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
   }
  }
  return value;
}
}

這樣對所有的GET請求都能正確處理中文參數(shù)了。以上過濾器采用了裝飾模式的設(shè)計,關(guān)于裝飾模式,百度如下:

(1) 裝飾對象和真實對象有相同的接口。這樣客戶端對象就可以以和真實對象相同的方式和裝飾對象交互。
(2) 裝飾對象包含一個真實對象的索引(reference)
(3) 裝飾對象接受所有的來自客戶端的請求。它把這些請求轉(zhuǎn)發(fā)給真實的對象。
(4) 裝飾對象可以在轉(zhuǎn)發(fā)這些請求以前或以后增加一些附加功能。這樣就確保了在運行時,不用修改給定對象的結(jié)構(gòu)就可以在外部增加附加的功能。在面向?qū)ο蟮脑O(shè)計中,通常是通過繼承來實現(xiàn)對給定類的功能擴展。

希望本文所述對大家Android程序設(shè)計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 激情伊人 | 黄色成人在线 | 免费一二区 | 九一麻豆精品 | 天堂一区二区三区在线 | 国产精品69毛片高清亚洲 | 成人免费视频网站在线观看 | 亚洲视频在线观看 | 日本久久网| 91久久国产精品 | 日本精品久久 | 免费在线成人网 | 成人av播放 | 欧美一级片在线 | 亚洲第一成年人网站 | av黄色在线| 久久久国产一区二区三区 | 懂色av中文字幕一区二区三区 | 一级二级在线观看 | 国产小视频在线播放 | 日韩精品一二三区 | 色爱区成人综合网 | av在线精品 | 色婷婷精品国产一区二区三区 | 欧美大片免费高清观看 | 这里只有精品在线视频观看 | 久久久久国产精品免费免费搜索 | 久久精品国产99国产精品 | 美女羞羞网站 | 伊人五月婷婷 | 成人第一区| 国产91精品亚洲精品日韩已满 | 成人精品在线观看 | av在线精品 | 91免费版在线看 | 欧美一区二区视频免费观看 | 黄久久久 | 国产精品久久久久久久久久ktv | 亚洲在线 | 国产在线91 | 欧美日本韩国一区二区三区 |