resttemplate返回值乱码解决方案

MultiValueMap<String, Object> obj  = new LinkedMultiValueMap<>();
obj.add("searchContent",searchContent);
obj.add("pageNum", "0"); // 分页页码
obj.add("pageSize","10");
RestTemplate restTemplate = new RestTemplate();
String message = restTemplate.postForObject("http://192.168.20.18:8601/bidding/bid/search/searcheV2", obj, String.class);
String utf8message = new String(message.getBytes("ISO-8859-1"),"UTF-8");

网上的方法

restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));

我这里StringHttpMessageConverter不能传参,可能是版本问题,我的解决方案是先用iso反编码再用utf8编码

String.getBytes(Stringdecode)方法会根据指定的decode编码返回某字符串在该编码下的byte数组表示,如:
byte[] b_gbk = "中".getBytes("GBK");
byte[] b_utf8 = "中".getBytes("UTF-8");
byte[] b_iso88591 = "中".getBytes("ISO8859-1");
将分别返回"中"这个汉字在GBK、UTF-8和ISO8859-1编码下的byte数组表示

 

posted @   杨吃羊  阅读(1296)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示