我有一個REST Web服務,它以JSON(作爲多部分表單數據)的形式輸入。輸入字符串編碼,需要原始字符串 - Java代碼
@POST
@Consumes ({"application/ds-json",MediaType.APPLICATION_FORM_URLENCODED,MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML,"text/html",MediaType.MULTIPART_FORM_DATA})
@Produces({ text_html, "application/ds-json" })
@Path("/abc")
public Response abc(@Context HttpServletRequest req, @Context HttpServletResponse response){
.
.
.
.
String strInput = inputJSON.getString("data");
.
.
.
}
輸入JSON,我送是{"data":"Sécurité"}
,而串strInput
我得到的價值是Sécurité
我試圖java.net.URLDecoder.decode(strInput, "iso-8859-1")
將其解碼回其原有的特色,但未能成功。
我也試過String strInput = new String((inputJSON.getString("data")).getBytes(), "iso-8859-1");
預期傳入的字符將按照需求存儲在變量strInput
中,但失敗。
我覺得完全迷失在這裏。有人可以幫忙嗎?
編輯:
更清晰,下面是究竟如何我送了JSON這一服務(僅用於測試目的):
- 我已經創建了一個HTML頁面可以發送POST請求的Web服務
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="http://localhost:8080/xxxx/abc" method="POST" enctype="multipart/form-data">
JSON:
<input type="text" name="data">
<input type="submit" name="submit">
</form>
</body>
</html>
- 在頁面,我輸入文本作爲使用
UTF-16
Sécurité
嘗試UTF-8或UTF-16,可能? –
你在哪裏看到錯誤的編碼字符串?在你的IDE,數據庫或其他地方? – Patrick
在我的IDE,後來我送這個字符串用作電子郵件主題行的電子郵件通知。還有它顯示爲相同的'Sécurité' –