最近被url传递参数的特殊字符折腾了,今天终于搞定了,写下来备忘。
首先,在http协议中,如果在url中传递参数中含有想%、?之类的特殊字符时,从client端传递到server端时,就会有莫名其妙的错误,如果理解了servlet容器怎么样解析URL的问题,这个就不莫名其妙了,这里先不说这个。
遇到传递参数是特殊字符的问题,解决办法就是对传递的参数进行URL编码,编码格式有encodeURI、escape、encodeURIComponent,对应的有解码方法,decodeURL、unescape、decodeURLComponent。三个编码方法传递的参数都是字符串,返回值是编码后的字符闯。下面说一说它们直接的区别。
1、escape()
The escape method returns a string value (in Unicode format) that contains the contents of [the argument]. All spaces, punctuation, accented characters, and any other non-ASCII characters are replaced with %xx encoding, where xx is equivalent to the hexadecimal number representing the character. For example, a space is returned as "%20."。
The escape and unescape functions let you encode and decode strings. The escape function returns the hexadecimal encoding of an argument in the ISO Latin character set. The unescape function returns the ASCII string for the specified hexadecimal encoding value.
编码函数 escape():将非字母、数字字符转换成ASCII码,如果参数中含有汉字的话,后台就会出现乱码。
2、encodeURI()
The encodeURI method returns an encoded URI. If you pass the result to decodeURI, the original string is returned. The encodeURI method does not encode the following characters: ":", "/", ";", and "?". Use encodeURIComponent to encode these characters.
Encodes a Uniform Resource Identifier (URI) by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character.
encodeURI不会将 ":", "/", ";", and "?"这些字符编码,如果要编码这些请使用encodeURIComponent方法。
3、encodeURIComponent()
The encodeURIComponent method returns an encoded URI. If you pass the result to decodeURIComponent, the original string is returned. Because the encodeURIComponent method encodes all characters, be careful if the string represents a path such as /folder1/folder2/default.html. The slash characters will be encoded and will not be valid if sent as a request to a web server. Use the encodeURI method if the string contains more than a single URI component.
Encodes a Uniform Resource Identifier (URI) component by replacing each instance of certain characters by one, two, or three escape sequences representing the UTF-8 encoding of the character.
如果在传递的参数中含有类似于/folder1/folder2/default.html这样的字符串,会有异常,可采用encodeURI方法进行处理。
相应的解码方法就不多介绍,就是编码后的字符串当作参数传递给相应的解码方法会得到原字符串。
分享到:
相关推荐
本文将详细介绍如何使用JavaScript进行URL编码转换,并提供一个具体的示例来帮助理解这一过程。 #### 一、URL编码基础知识 URL编码(也称为百分号编码)是一种机制,用于将特殊字符(如空格、中文字符等)转换为...
在实际编程中,大多数编程语言都提供了内置函数来自动进行URL编码和解码,如JavaScript的`encodeURIComponent()`和`decodeURIComponent()`,Python的`urllib.parse.quote()`和`urllib.parse.unquote()`等。...
2. **URL编码**:JavaScript的`encodeURIComponent`函数可以对字符串进行URL编码,但默认它只处理UTF-8编码。为了GBK编码的字符串能正确编码,需要先将GBK编码后的字节序列转换为 `%xx` 形式,这可以通过遍历字节...
使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的 encodeURI函数编码的URL,结果就不一样。 javaScript中的编码方法: escape() 方法: 采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、...
JavaScript URL编码是Web开发中一个重要的概念,主要目的是确保URL中的特殊字符不会导致解析错误或影响URL的功能。本文将详细讲解JavaScript中三种常见的URL编码方式:`escape()`、`encodeURI()`以及`...
JavaScript 对 URL 编码解码 JavaScript 中对 URL 编码和解码涉及到六个函数:escape、encodeURI、encodeURIComponent、unescape、decodeURI 和 decodeURIComponent。这六个函数的使用场景和特点分别是: escape ...
在实际应用中,URL编码不仅限于手动操作,许多编程语言如JavaScript、Python、Java等都提供了内置函数来自动处理URL编码和解码。例如,JavaScript中的`encodeURIComponent()`和`decodeURIComponent()`函数,可以方便...
所以就自己写了一个JavaScript脚本 进行URL编码。原理就是先把unicode字符串转换成BASE64编码文本。然后把base64文本传递到js脚本里面的一个函数内。js函数把base64编码还原成unicode的数据 然后直接调用URL编码...
这个名为“一个简单url编码解码”的项目,就是为新手提供了一个理解和实践URL编码与解码机制的实例。 URL编码是根据RFC 3986标准进行的,主要使用百分号(%)表示非ASCII字符或特殊字符的ASCII十六进制值。例如,...
另外,虽然在大多数情况下,URL编码遵循ASCII标准,但在Unicode环境中,URL编码也可以扩展到包含非ASCII字符,这通常被称为“ Punycode”转换。 在实际开发中,了解并正确使用URL编码和解码不仅能保证数据的完整性...
URL编码遵循统一资源标识符(URI)的规则,其中最常用的是基于百分号(%)的编码方法。每个非ASCII或特殊字符会被替换为"%xy"的形式,其中xy是该字符在UTF-8编码中的两个字节的十六进制表示。例如,空格字符(ASCII...
// JavaScript URL编码 <!-- 页面内容 --> ``` - 后台处理: ```java String inStr = request.getParameter("work"); String outStr = new String(inStr.getBytes("iso-8859-1"), "UTF-8"); ``` 8. *...
例如,Apache Commons Lang库提供了`StringEscapeUtils`类,用于对字符串进行编码和解码,包括URL编码。此外,Java的`java.net.URLDecoder`和`java.net.URLEncoder`类也提供了URL编码和解码的功能。 文件的编码方式...
在IT行业中,URL编码(又称为百分号编码)是一种用于在网络应用中表示非ASCII字符或特殊字符的标准。这种编码方式是HTTP协议的一部分,确保数据可以在URL中安全传输。本话题将详细探讨“url编码解码源代码”,以及...
1. **编程语言内置函数**:在大多数编程语言中,如Java、Python、JavaScript,都有内置的函数来处理URL编码和解码,例如JavaScript的 `encodeURIComponent()` 和 `decodeURIComponent()` 函数。 2. **在线工具**:...
8. **安全考量**:URL编码也可以用于防止跨站脚本攻击(XSS),通过编码恶意输入,可以避免这些输入被浏览器错误解析为HTML或JavaScript代码,从而提高应用的安全性。 总结起来,URL编码解码是网络通信的基础,对于...
本文将详细讲解"codeURL编码解码工具"的相关知识点,包括URL编码的原理、用途以及如何使用这类工具进行编码和解码。 URL(Uniform Resource Locator)即统一资源定位符,是互联网上的资源地址。它由协议类型、主机...
在编程语言中,如JavaScript、Python、Java等,都有内置函数可以方便地对字符串进行URL编码和解码。例如,JavaScript的`encodeURIComponent()`和`decodeURIComponent()`函数,Python的`urllib.parse.quote()`和`...