Android 用戶端與服務端JSP相互傳遞中文

來源:互聯網
上載者:User

標籤:android   utf8   jsp 中文編碼   

  為了相容簡體、繁體及其他語系,推薦使用UTF-8編碼。

首選,我們看看Android端應該怎麼做:

在發送前,應該對參數值要進行UTF-8編碼,我寫了一個static的 轉換函式,在做發送動作前用它將參數值轉換成utf8編碼:

public class NetUtil {static public String toUtf8Url(String value) {try {return java.net.URLEncoder.encode(value, "utf8");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blockreturn "";}}}

還要注意發送接收函數,返回的httpEntity的返回內容轉成BufferedInputStream然後讀出byte[],再用new String(byte[],"utf8")這種方式獲得返回字串。



下面是對服務端的處理,首選保證jsp的字元處理都是用UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
...
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  request.setCharacterEncoding("UTF-8");

    有兩種辦法可讓JSP正確將UTF-8解碼:

第一種辦法簡單,配置tomcat的server.xml:vi 開啟server.xml,尋找 <Connector port="80"關鍵字,在裡面指定URI編碼屬性: URIEncoding="UTF-8"

,然後重啟tomcat即可,無需修改JSP代碼。


第二種辦法,如果沒許可權修改tomcat配置,那麼需要手動轉換:

String p_str =URLDecoder.decode(X11checkString((String)request.getParameter("str")),"UTF-8");
// 如果修改了server.xml,可直接用這個 String p_str = X11checkString((String)request.getParameter("str"));



測試如,英文、簡體中文、傳統中文、日語並存也可正確解碼。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.