开发者社区> 问答> 正文

请教java参数转码问题 400 请求报错 

 跟大家请教个问题,java http 协议 http://xxxx/xxx/xxx?payname=哈喽  ,get 方式获取到的编码是iso8859-1(也可以设置tomcat编码解决),
     最近跟第三方接口通讯,人家传中文过来我接收的就是乱码(人家说我们环境问题,也不给我们看他们代码,也不太想解决),那就我们自己解决.
我们环境接收到get带中文参数 请求接收到 "哈喽" 俩字 直接 getParameter 就是 å“ˆå–½  
他们环境发过来带中文参数 请求接收到 "哈喽" 俩字 直接 getParameter 就是  ���
我在本地模拟了下,tmp_gb2312_2 这个样子, 请教下 能否把我转乱的 ��� 恢复成 "哈喽" 俩字吗?
下面是我的测试代码,tmp_iso8859_1 能恢复,gb2312就恢复不了.

String payname = request.getParameter("payname"); //哈喽 String tmp_utf8 = new String(payname.getBytes("iso8859-1"), "utf8");

String tmp_iso8859_1_1 = new String(tmp_utf8.getBytes("utf8"), "iso8859-1"); String tmp_iso8859_1_2 = new String(tmp_iso8859_1_1.getBytes("iso8859-1"), "utf8");

String tmp_gb2312_1 = new String(tmp_utf8.getBytes("utf8"), "gb2312"); String tmp_gb2312_2 = new String(tmp_gb2312_1.getBytes("gb2312"), "utf8"); String tmp_gb2312_3 = new String(tmp_gb2312_2.getBytes("utf8"), "iso8859-1");

payname=哈喽 tmp_utf8=哈喽 tmp_iso8859_1_1=哈喽 tmp_iso8859_1_2=哈喽 tmp_gb2312_1=��� tmp_gb2312_2=??? tmp_gb2312_3=???

展开
收起
kun坤 2020-05-29 09:54:50 781 0
1 条回答
写回答
取消 提交回答
  • 你想问啥?######你不是已经实现了######��� 恢复成 "哈喽" 俩字

    2020-05-29 11:05:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载