post请求到服务器中文全是问号???

大白免1521 2020-07-18 08:33:23
项目的字符编码是utf-8的,加了过滤器但不起作用;tomcat没有去改,他们说tomcat8和9没有乱码问题,刚刚换的tomcat9还是乱码。 然后我打印了请求编码是utf-8, 把字符串手动改成utf-8的还是一堆问号, 改成GBK又正常了。 不解啊,感觉项目没问题,我想知道有没有除了重装idea的解决办法。
...全文
4532 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
大白免1521 2020-07-19
  • 打赏
  • 举报
回复
@PostMapping("/login")
public String login(String uname, HttpSession session, HttpServletRequest request) throws UnsupportedEncodingException {
session.setAttribute("uname",uname);
System.out.println("login "+uname);//乱码
System.out.println("uname.getBytes(\"utf-8\").toString() = " + new String(uname.getBytes("iso-8859-1"),"utf-8"));//正常
System.out.println("uname.getBytes(\"GBK\").toString() = " + new String(uname.getBytes("iso-8859-1"),"GBK"));//乱码
return "index";
}
request.setCharacterEncoding("utf-8")也试过了,没用,只是编码的名字改成了utf-8,实际的字符编码没有改。
下面的这个过滤器也只改了编码的名字
<!-- 配置过滤器,解决post的乱码问题 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
大白免1521 2020-07-19
  • 打赏
  • 举报
回复
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>login</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/login" method="post">
<table>
<tr>
<td>用户名:</td>
<td>
<input name="uname">
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit">
</td>
</tr>
</table>
</form>
</body>
</html>
大白免1521 2020-07-19
  • 打赏
  • 举报
回复
引用 6 楼 黄巧龙的回复:
在ieda工具help---->Edit customer VM options... ----->里面加上一句 -Dfile.encoding=UTF-8
这个试过了,改了之后控制台的日志也乱了
别告诉我有BUG 2020-07-19
  • 打赏
  • 举报
回复
然后重启一下
别告诉我有BUG 2020-07-19
  • 打赏
  • 举报
回复
在ieda工具help---->Edit customer VM options... ----->里面加上一句 -Dfile.encoding=UTF-8
tianfang 2020-07-19
  • 打赏
  • 举报
回复
你还是检查一下页面字符集吧 ,或者把页面源码贴出来
大白免1521 2020-07-19
  • 打赏
  • 举报
回复
引用 2 楼 tianfang的回复:
你的输入页面是GBK的,提交时的时候,就是GBK字符串,把页面设置为为UTF8
页面一直是utf-8没改过
大白免1521 2020-07-19
  • 打赏
  • 举报
回复
引用 2 楼 tianfang的回复:
你的输入页面是GBK的,提交时的时候,就是GBK字符串,把页面设置为为UTF8
页面一直是utf-8没改过
tianfang 2020-07-19
  • 打赏
  • 举报
回复
你的输入页面是GBK的,提交时的时候,就是GBK字符串,把页面设置为为UTF8
大白免1521 2020-07-19
  • 打赏
  • 举报
回复 1
感谢各位,我找着错误了
原因是项目做到一半改了字符编码,后面的java文件编码和前面的编码不一样,我换个工程重新写就没事了。
顺便说一下我前面换工程也会乱码可能是因为我是直接copy前面乱码的工程代码。
唉,不注意细节的后果,我要记住这个教训,以后不能在犯了。
ASCII0000 2020-07-19
  • 打赏
  • 举报
回复
配置了过滤器,maven加上参数-Dfile.encoding=改成gkb,我的其他的都是设置utf-8,但是用maven时就会控制台乱码,最后maven的改成gbk就不会了
大白免1521 2020-07-18
  • 打赏
  • 举报
回复
这个问题卡了好几周,网上的办法都试得差不多了,就差重装电脑没试过

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧