作者:不想打工的码农 原创手记|血泪排查|拒绝Ctrl+C/V (附:Tomcat 9.0.85 + Servlet 4.0 真实环境验证)
🌧️ 那个被测试妹子“堵门”的下午
“哥!用户昵称带中文的全变???了!线上复现!” 测试小妹举着手机站我工位前,屏幕截图刺眼: {\”nickname\”:\”???\”} 我后背一凉——这需求昨天刚上线,我亲手测的啊!
翻遍JSP、数据库、Nginx,编码全是UTF-8… 直到她幽幽补刀:“只有提交表单时乱码,URL传参正常\” 我手一抖,咖啡洒了半键盘。
🔍 排查流水账(带真实日志)
第一回合:甩锅数据库?❌
SELECT HEX(nickname) FROM user WHERE id=1001;
— 结果:E4B8ADE69687 → UTF-8编码的“中文”!数据库没问题!
测试妹子冷笑:“哥,日志里存的也是乱码哦~\”
第二回合:甩锅Tomcat?❌
server.xml 确认三遍:
<Connector port=\”8080\” URIEncoding=\”UTF-8\” useBodyEncodingForURI=\”true\”/>
Postman直连接口:中文正常! 问题锁定:前端→后端链路
第三回合:Arthas神助攻!✅
# 监控Filter执行时的request参数
watch javax.servlet.Filter doFilter \'{params[0].getParameter(\”nickname\”)}\’ -x 3
关
网硕互联帮助中心





评论前必须登录!
注册