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