网址URL中特殊字符转义编码
字符 - URL编码值
空格 - %20
" - %22
# - %23
% - %25
& - %26
( - %28
) - %29
+ - %2B
, - %2C
/ - %2F
: - %3A
; - %3B
< - %3C
= - %3D
> - %3E
? - %3F
@ - %40
\ - %5C
| - %7C
URL
特殊字符转义
URL中一些字符的特殊含义,基本编码规则如下:
1、空格换成加号(+)
2、正斜杠(/)分隔目录和子目录
3、问号(?)分隔URL和查询
4、百分号(%)制定特殊字符
5、#号指定书签
6、&号分隔参数
如果需要在URL中用到,需要将这些特殊字符换成相应的十六进制的值
+ %2B
/ %2F
? %3F
% %25
# %23
& %26
由于在项目中经常要用AJAX传SQL给后台服务端
会遇到参数中含有+的问题。总会丢掉(+)
这个时候可以尝试用一下URL特殊字符转义
网址URL中特殊字符转义编码字符 - URL编码值空格 - %20" - %22# - %23% - %25& - %26( - %28) - %29+ - %2B, - %2C/ - %2F: - %3A; - %3B< - %3C= - %3D> - %3E? - %3F@ - %40\ - %5C| - %7CURL特殊字符转...
url
出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的
参数
值,如何是好?解决办法将这些字符转化成服务器可以识别的字符,对应关系如下:
URL
字符转义
用其它字符替代吧,或用全角的。
+
URL
中
+号表示空格 + 空格
URL
中
的空格可以用+号或者
编码
/ 分隔目录和子目录 / ? 分隔实际的
URL
和
参数
十六进制值 1. +
URL
中
+号表示空格 + 2. 空格
URL
中
的空格可以用+号或者
编码
3. / 分隔目录和子目录 / 4. ? 分隔实际的
URL
和
参数
? 5. % 指定
特殊字符
% 6. # 表示书签 # 7. &
URL
中
指定的
参数
间的分隔符 & 8. =
URL
中
指定
参数
的值 =
解决的方法:replace() 方法如果直接用str.replace(“-“,”!”) 只会
替换
第一个匹配的字符.而str.replace(/\-/g,”!”)则可以
替换
掉全部匹配的字符(g为全局标志)。replace()js
中
替换
字符变量如下:
一、问题的引出
在做一个公告浏览功能时,只要通过
url
传递的某
参数
值
中
包含 & 或 ,就会出现问题–该变量的值无法显示。
问题定位结果: 遇到&时,该
参数
的值会自动截断,导致
参数
值传递有误。
二、问题的解决
java代码
中
做如下测试:
String charEncode = java.net.
URL
Encoder.encode(“&”);
System.out.println(“字符& 转译后的值为:” + charEncode ); //输出:&
所以,解决方法出现了—在传送
参数
前, 将&全部
替换
为&
var
url
= ”page.jsp?para1=a&b“
从本地加载H5资源时,使用
URL
的 file
URL
WithPath: 定位资源时
文件路径:
/var/mobile/Containers/Data/Application/590E20E4-5839-43DD-BCC3-3543318F32D3/Demo.app/H5/index.html#/home
中
的 # 符号
从 NSString 转成 NS
URL
时
通常如果一样东西需要
编码
,说明这样东西并不适合传输。原因多种多样,如Size过大,包含隐私数据,对于
Url
来说,之所以要进行
编码
,是因为
Url
中
有些字符会引起歧义。
例如,
Url
参数
字符串
中
使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8。如果你的value字符串
中
包含了=或者&,那么势必会造成接收
Url
的服务器解析...
java对文字进行
编码
涉及3个函数:escape,encodeURI,encodeURIComponent
js
中
,你通过
url
传值,需要这样:
function updatePLChild(name){
//先对
参数
进行
编码
name = encodeURIComponent(name);
location.href="newLessonPlan.do?name="+na
当在 Vue 路由文件
中
引用组件时,可以使用相对路径或别名(alias)来引用,其
中
别名可以在 webpack 的配置
中
进行设置。通常情况下,@ 符号代表 src 目录的路径,也是一个别名。如果在路由文件
中
使用 @ 来引用组件时出现了“this dependency was not found”这样的错误提示,可能是以下原因所致:
1. webpack 配置
中
没有正确设置别名
可以在 webpack 的配置文件
中
设置一个 alias,把 @ 映射到项目的 src 目录。如下面的例子,将 @ 映射到 src 目录:
// webpack.config.js
module.exports = {
resolve: {
alias: {
'@': path.resolve(__dirname, 'src')
2. TypeScript
中
的路径映射问题
如果在 TypeScript
中
使用了路径映射来解析路径,如下所示:
// tsconfig.json
"compilerOptions": {
"base
Url
": ".",
"paths": {
"@/*": ["src/*"]
则需要在 webpack 配置
中
设置 resolve.modules,将项目根目录加入其
中
:
// webpack.config.js
module.exports = {
resolve: {
modules: [
path.join(__dirname, './'),
path.join(__dirname, './node_modules')
3. 项目结构变更或路径错误
如果项目结构发生了变更,或者组件的路径写错了,也会出现 “this dependency was not found”这样的错误提示。在这种情况下,需要检查组件的路径是否正确,或者对项目结构进行调整。
总之,无法识别 @ 符号的错误往往是因为 webpack 配置问题或路径设置不正确,需要仔细检查并进行调整。