系統用的是resteasy架構的rest架構,有一個表單送出,需要上傳一張圖檔和送出一些文本資訊,文本資訊有中文,但是中文一直出現亂碼,頁面和背景編碼都是UTF-8,糾結半天,終于解決
@POST
@Path("picture")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void savePicture(MultipartFormDataInput formDataInput) {
try {
Map<String, List<InputPart>> uploadForm = formDataInput.getFormDataMap();//送出的form表單
List<InputPart> inputParts = uploadForm.get("image");
//處理圖檔的操作省略
InputPart titleinputParts = uploadForm.get("title").get(0);
titleinputParts.setMediaType(MediaType.TEXT_PLAIN_TYPE);
String title = titleinputParts.getBodyAsString();
} catch (Exception e1) {
logger.info("出錯");
logger.info(e1);
} finally {
logger.info("結束");
}
在擷取字元串之前要把mediatype改掉 即:
titleinputParts.setMediaType(MediaType.TEXT_PLAIN_TYPE);