NutzCN Logo
问答 Nutz同时上传中文文字和图片时,中文乱码
发布于 3152天前 作者 yummy222 2512 次浏览 复制 上一个帖子 下一个帖子
标签:

当用文字和图片同时上传时,英文,数字字符不会乱码,只有中文乱码
QQ图片20160506184517_png

13 回复

如果不上传图片,只上传文字时并不会出现中文乱码现象

前端的代码贴来看看

@Override
public ActivateResponse addActivate(String userid, String username, String activatename, String activateaddr,
String formatDate, String context, String pageviews, String activateType, String bitmapPath) {
MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
paramMap.add("userid", userid);
paramMap.add("username", username);
paramMap.add("activatename", activatename);
paramMap.add("activateaddr", activateaddr);
paramMap.add("starttime", formatDate);
paramMap.add("context", context);
paramMap.add("pageviews", pageviews);
paramMap.add("activatetype", activateType);
String url = null;
if (bitmapPath != null && bitmapPath.length() > 0) {
paramMap.add("bitmappath", new FileSystemResource(bitmapPath));
url = getRequestUrl(REQUEST_NEW_ACTIVATE);
}else {
url = getRequestUrl(REQUEST_NEW_ACTIVATENOPIC);
}

    ActivateResponse response = restTemplate.postForObject(url, paramMap,
         ActivateResponse.class);
    return response;
}

@wendal

public ActivateResponse addActivate(String userid, String username, String activatename, String activateaddr,
String formatDate, String context, String pageviews, String activateType, String bitmapPath) {
MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
paramMap.add("userid", userid);
paramMap.add("username", username);
paramMap.add("activatename", activatename);
paramMap.add("activateaddr", activateaddr);
paramMap.add("starttime", formatDate);
paramMap.add("context", context);
paramMap.add("pageviews", pageviews);
paramMap.add("activatetype", activateType);
String url = null;
if (bitmapPath != null && bitmapPath.length() > 0) {
paramMap.add("bitmappath", new FileSystemResource(bitmapPath));
url = getRequestUrl(REQUEST_NEW_ACTIVATE);
}else {
url = getRequestUrl(REQUEST_NEW_ACTIVATENOPIC);
}

    ActivateResponse response = restTemplate.postForObject(url, paramMap,
         ActivateResponse.class);
    return response;
}

我猜测的原因有:

  • 客户端上按URL参数发过来了
  • 服务器端的编码不是UTF-8(启动时看日志里的容器编码信息), 然后客户端发过来的时候也没有写明编码

@wendal
我看了一下日志,发现如果上传了图片的话,好像是直接把所有参数都当成是文件上传,然后获取到的value是??
红字1所指的是中文参数,红字2所指的是图片文件
QQ图片20160506205731_png

@wendal

只输入文字的参数是没有问题的,服务器编码也是UTF-8编码,如果是编码问题,应该只传文字参数时也是会乱码的,但现在只传文字是不会乱码
untitled1_png

如果问号的数量与字符数相等,那么应该是传输的编码问题了, 用个http监听工具分析一下吧

遇到过,用nutz的filepostsender调用,或者差不多写一个,大概就是中文内容要urlencode

没落的是月,而流浪的是心

添加回复
请先登陆
回到顶部