大致代码如下
@PostMapping("/test")
public String userUploadWorkFile(HttpServletRequest request, @RequestParam("file") MultipartFile multipartFile) {
String projectName = request.getParameter("projectName");
...
...
...
return "redirect:/project/list.html?projectName=" + projectName;
}
最终浏览器上的访问路径是 /project/list.html?projectName=???? ,但代码中的字符串 projectName 是有确定值的,并不是????。
我想请问这是什么原因导致的,望大佬传道授业解惑。
projectName 是 非ASCII 码组成?
return之前,先做转码,再用
没考虑到编码的原因,去试试看看。
好像不行,我用了两种方式。
一、String pro = new String(proName_.getBytes(StandardCharsets.US_ASCII)) 最终的结果还是一堆 ????
二、从网上搜的
StringBuffer stringBuffer = new StringBuffer();
char[] chars = projectName.toCharArray();
for(int i = 0; i < chars.length; i++){
if(i != chars.length -1){
stringBuffer.append((int)chars[i]).append(",");
}else {
stringBuffer.append((int) chars[i]);
}
}
String pro_ = stringBuffer.toString();
最终的结果是 projectName=19971,21495,39033,30446。比第一种好一点(😂)。
@up-bear:
前端 URLEncoder(JS里面是什么?)
后端 接收 URLDecoder,返回(组装) URLEncoder
基于Java
@快乐的凡人721: 解决了,感谢凡哥。有点懵逼,ieda的编码我设置的是utf8,但还是需要对string进行utf8转码,可能idea设置中的编码和string编码方式压根就没什么关系。
@up-bear:
IDEA的编码设置 是和 源码有关
对Web服务器的编码没影响的
区分开来
注意,上面的话 80%确信度
@快乐的凡人721: 嗯嗯。