js、Java的url参数转码(url里中文、特殊符号参数转码)

news/2024/7/19 13:21:05 标签: java, js, url

问题

url中的参数里,除了字母、数字以及".","-","*" 和 "_"这些字符外,其他符号(空格、汉字等)会被认为是不安全字符,因此在传参时需要对参数进行转码,转码后的特殊字符数据是一个或多个十六进制的转义序列。

js_3">js转码

js使用JavaScript全局函数 encodeURIComponent

javascript">	var basicStr = '123 ABC+-456你好DEF'
	var encodeStr = encodeURIComponent(basicStr)
	console.info(basicStr)
	console.info(encodeStr)

执行结果:

123 ABC+-456你好DEF
123%20ABC%2B-456%E4%BD%A0%E5%A5%BDDEF

Java转码

Java语言使用 java.net.URLEncoder 包里的静态方法 encode

java">	public static void main(String[] args) throws UnsupportedEncodingException {
		String basicStr = "123 ABC+-456你好DEF";
		System.out.println(basicStr);
		String encodeStr = URLEncoder.encode(basicStr, "UTF-8");
		System.out.println(encodeStr);
	}

执行结果:

123 ABC+-456你好DEF
123+ABC%2B-456%E4%BD%A0%E5%A5%BDDEF

这里留意一下,js函数把空格替换为"%20",而Java方法把空格替换为"+"号,它们都是代表空格。

测试

使用转码出来的字符串作为url中的参数请求接口:

/testParam?data=123%20ABC%2B-456%E4%BD%A0%E5%A5%BDDEF

后台接口代码

java">	@ResponseBody
	@GetMapping("/testParam")
	public Object testParam(String data) {
		try {
			log.info(data);
			return "success";
		} catch (Exception e) {
			return "fail";
		}
	}

控制台结果:

123 ABC+-456你好DEF


http://www.niftyadmin.cn/n/1599316.html

相关文章

JPA通用Dao类设计

设计思路:利用spring对dao层的支持,使用泛行方式对它进行一次包装,此通用DAO只实现最基本的增删改查功能,具体的特殊实现有它的子类实现 接口设计,在原来的工程中建立一个源代码包,名称为common&#xff0c…

花名册管理之基本概念和操作

这几天公司软件要增加黑名单的功能,因为公司产品的IM功能模块用的是开源的Gloox库,Gloox是实现了XMPP协议的c客户端库,所以我觉得这个功能应该是很简单的,结果做起来发现XMPP的花名册管理(XMPP协议里面花名册管理部分相…

js对象转json字符串

js对象转json字符串 将js对象转为json格式的字符串,可以用JSON.stringify方法。 var user1 {height: 170, name:张三}; var user1Str JSON.stringify(user1) console.info(user1Str) typeof user1Str使用typeof来获取对象user1Str的类型,能看到控制台…

封装JPA的数据操作DAO类

对JPA的实体操作进行了简单的封装,降低了数据操作的难度,提高了开发的效率。里面可能会有少许hibernate的元素。 DAO.java /************************* 版权声明 ********************************** * 版权所有:百洋软件* Copyright (c) 20…

CentOS7 安装redis 详细步骤

文章讲述CentOS7安装redis6.2.5的详细步骤。 目录下载装wget下载redis解压缩安装装make编译程序用make安装尝试启动装service脚本安装二进制文件配置环境变量安装服务实例确认结果下载 我们下载用linux的wget工具,如果没有需要先安装。 装wget 安装wget比较简单&…

shiro简单配置

注:这里只介绍spring配置模式。 因为官方例子虽然中有更加简洁的ini配置形式,但是使用ini配置无法与spring整合。而且两种配置方法一样,只是格式不一样。 涉及的jar包 Jar包名称 版本 核心包shiro-core 1.2.0 Web相关包shiro-web 1.2.0 …

vue element-ui 修改el-tree节点的disabled状态

el-tree可以用show-checkbox来开启选择框。 在生成节点node的时候指定了disabled属性值,但后面需要修改这个节点的禁用状态。 此时如果直接 node.disabledfalse,会报错: Uncaught (in promise) TypeError: Cannot set property disabled of …