URLEncoder、URLDecoder编码解码
public static void main(String[] args) {
String a = "欢迎你"; try {
//编码(后端传给前端数据之前要先 URLEncoder) String b = URLEncoder.encode(a, "UTF-8"); System.out.println(b); //解码(前端传给后端数据,后端接收后要先 URLDecoder) String c= URLDecoder.decode(b, "UTF-8"); System.out.println(c); } catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block e.printStackTrace(); } }
自己在代码中远程调用应用实例:
远程调用的是这个add接口已经编码 //新增商品维修记录 @PostMapping(value = "/add") public U_result create(@RequestParam(value = "data", defaultValue = "") String data) {
U_result ret = new U_result(); data = URLDecoder.decode(data); DeviceAlarmData _info = JSON.parseObject(data, DeviceAlarmData.class); _info = dataService.addData(_info); if (null != _info) {
ret.suc(_info); } else {
ret.err("系统错误!"); } return ret; }
所以此处调用要进行解码
DeviceAlarmData deviceAlarmData = new DeviceAlarmData(); deviceAlarmData.setDeviceId(item.getId()); deviceAlarmData.setName(names); deviceAlarmData.setAlarmDateTime(times); deviceAlarmData.setAlarmLvId(alarmLvId); deviceAlarmData.setAlarmContent(alarms); Map<String, Object> map = new HashMap<>(); map.put("data", URLEncoder.encode(JSON.toJSONString(deviceAlarmData))); HttpRequest.post(URL_PATH_3).form(map).send().charset("utf-8").bodyText();
测试类展示
public class URLDecoderTest {
public static void main(String[] args) throws Exception {
// 将application/x-www-form-urlencoded字符串转换成普通字符串 // 其中的字符串直接从上图所示窗口复制过来,chrome 默认用 UTF-8 字符集进行编码,所以也应该用对应的字符集解码 System.out.println("采用UTF-8字符集进行解码:"); String keyWord = URLDecoder.decode("%E5%A4%A9%E6%B4%A5%E5%A4%A7%E5%AD%A6+Rico", "UTF-8"); System.out.println(keyWord); System.out.println("\n 采用GBK字符集进行解码:"); System.out.println(URLDecoder.decode("%E5%A4%A9%E6%B4%A5%E5%A4%A7%E5%AD%A6+Rico", "GBK")); // 将普通字符串转换成application/x-www-form-urlencoded字符串 System.out.println("\n 采用utf-8字符集:"); String urlStr = URLEncoder.encode("天津大学", "utf-8"); System.out.println(urlStr); System.out.println("\n 采用GBK字符集:"); String urlStr2 = URLEncoder.encode("天津大学", "GBK"); System.out.println(urlStr2); } }/* Output: 采用UTF-8字符集进行解码: 天津大学 Rico 采用GBK字符集进行解码: 澶╂触澶у Rico 采用utf-8字符集: %E5%A4%A9%E6%B4%A5%E5%A4%A7%E5%AD%A6 采用GBK字符集: %CC%EC%BD%F2%B4%F3%D1%A7 *///:~
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221710.html原文链接:https://javaforall.net
