url的非法字符都有哪些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了url的非法字符都有哪些相关的知识,希望对你有一定的参考价值。

例子:

1、比如在操作系统的文件(夹)命名里,它有自己的一套规则:\\ / * ? : | 等字符不能出现在名称里面。 因此在此规则里面 字符 \\ / * ? : "<> | 都属于非法字符。

2、比如在编程语言 例如C# 变量不能出现以数字开头的名称,像 0tmp 这个变量名称就属于非法的。 

3、比如在java语言中,对于变量名称只能是数字,字母,下划线,$这几种组合,其中不能以数字开头。

非法字符并不是指某个字符是非法的,而是某个字符不能出现在某个定义的规则里面。

扩展资料:

URL的参数中一定要避免的非法字符:

在URL中的参数中不能有空格、双字节字符(如汉字),否则会破坏URL中参数含义的准确性,成为非法的URL,访问该URL后会报:Server returned HTTP response code: 505 for URL错误!

解决方法(以参数中含有空格为例):
空格的unicode为%20,将参数中的所有空格都替换为%20即可。

参考资料:百度百科-非法字符

参考技术A URL无法显示某些特殊符号,这个时候就要使用编码了。编码的格式为:一个百分号,后面跟对应字符的ASCII(16进制)码值。例如 空格的编码值是"%20"。(ASCII参考)
URL中的特殊字符
特殊含义 十六进制值
1.+ 表示空格(在 URL 中不能使用空格) %20
2./ 分隔目录和子目录 %2F
3.? 分隔实际的 URL 和参数 %3F
4.% 指定特殊字符 %25
5.# 表示书签 %23
6.& URL 中指定的参数间的分隔符 %26
7. = URL 中指定参数的值 %3D
参考技术B 1. 字母数字字符 "a" 到 "z"、"A" 到 "Z" 和 "0" 到 "9" 保持不变。
2. 特殊字符 "."、"-"、"*" 和 "_" 保持不变。
3. 空格字符 " " 转换为一个加号 "+"。
4. 所有其他字符都是不安全的,因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含 3 个字符的字符串 "%xy" 表示,其中 xy 为该字节的两位十六进制表示形式。推荐的编码机制是 UTF-8。但是,出于兼容性考虑,如果未指定一种编码,则使用相应平台的默认编码。

类URLEncoder使用 UTF-8 编码机制,字符串 "The string ü@foo-bar" 将转换为 "The+string+%C3%BC%40foo-bar"。

参考资料:jdk帮助文档

参考技术C 需要过滤的特殊字符及字符串有:
net user
xp_cmdshell
/add
exec master.dbo.xp_cmdshell
net localgroup administrators
select
count
Asc
char
mid
"
:
"
insert
delete from
drop table
update
truncate
from
%

"
'
<
>
%
&
(
)
;
+
-
[
]



http://www.venustech.com.cn/NewsInfo/364/4605.html

参考资料:http://blog.csdn.net/justmuch/archive/2007/12/17/1943037.aspx

参考技术D 需要过滤的特殊字符及字符串有:
net user
xp_cmdshell
/add
exec master.dbo.xp_cmdshell
net localgroup administrators
select
count
Asc
char
mid
"
:
"
insert
delete from
drop table
update
truncate
from
%

"
'
<
>
%
&
(
)
;
+
-
[
]

以上是关于url的非法字符都有哪些的主要内容,如果未能解决你的问题,请参考以下文章

分支名称中的哪些字符是非法的?

分支名称中的哪些字符是非法的?

带有非法字符的 URL 的正则表达式 \\

删除非法字符的助手?

Docker Jenkins Image - curl:(3)在 URL 中发现非法字符

用java获取URL路径时出现非法字符