java 代码模拟客户端进行POST请求服务器出现中文乱码问题
java 代码模拟客户端进行POST请求服务器出现中文乱码问题| Id | Title | DateAdded | SourceUrl | PostType | Body | BlogId | Description | DateUpdated | IsMarkdown | EntryName | CreatedTime | IsActive | AutoDesc | AccessPermission |
| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------|
| 15257186| java 代码模拟客户端进行POST请求服务器出现中文乱码问题| 2021-09-12T00:19:00| | BlogPost|
今天在做项目的时候遇到一个问题。我用java模拟了一个客户端进行请求,在本机进行模拟的时候,后台收到的中文是没有乱码的。将项目打包发布到服务器上的时候。出现了中文乱码问题。我第一反应是客户端的编码格式不对,于是我做了以下修改
try {
name1 = new String(name.getBytes("GBK"),"utf-8");
} catch (UnsupportedEncodingException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
结果还是出现了乱码,这时候我联想到第二点,我在模拟请求的时候加上了
try {
URL uri1 = new URL(CHEACK_WITHOUT_ID_IMG);
HttpURLConnection conn = (HttpURLConnection)uri1.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.getOutputStream().write(prams.getBytes());
上面这几句。首先设置了提交方式,在设置了一些参数
"application/x-www-form-urlencoded;charset=utf-8"
但是结果依然让人摸不着头脑,还是字符集出了错,于是我还是在服务器端排查,终于找到了原因,我把参数 prams 传入的时候是写入了流。但是流没有进行编码,在经过tomcat的post重编码之后导致了我post出去的参数prams里面的中文全部乱码了。于是加上这句conn.getOutputStream().write(prams.getBytes("utf-8"));
conn.getOutputStream().write(prams.getBytes("utf-8"));
中文乱码问题完美解决。
————————————————
版权声明:本文为CSDN博主「咸蛋超人有动感光波」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011016389/article/details/80989709
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)