天天看點

resteasy上傳檔案中文亂碼解決

系統用的是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);