在使用url进行参数传递时,经常会传递一些中文名的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原来发生不一致。使用服务器端的urlEncode函数编码的URL,与使用客户端javascript的 encodeURI函数编码的URL,结果就不一样。
javaScript中的编码方法:
escape() 方法:
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。unescape方法与此相反。不会被此方法编码的字符: @ * / +
英文解释:MSDN JScript Reference: 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."
Edge Core Javascript Guide: 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.
encodeURI() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '
英文解释:MSDN JScript Reference: 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. Edge Core Javascript Guide: 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
encodeURIComponent() 方法:把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。不会被此方法编码的字符:! * ( )
英文解释:MSDN JScript Reference: 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. Mozilla Developer Core Javascript Guide: 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.
因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用 encodeURI或者encodeURIComponent。
另外,encodeURI/encodeURIComponent是在javascript1.5之后引进的,escape则在javascript1.0版本就有。
英文注释:The escape() method does not encode the + character which is interpreted as a space on the server side as well as generated by forms with spaces in their fields. Due to this shortcoming, you should avoid use of escape() whenever possible. The best alternative is usually encodeURIComponent().Use of the encodeURI() method is a bit more specialized than escape() in that it encodes for URIs [REF] as opposed to the querystring, which is part of a URL. Use this method when you need to encode a string to be used for any resource that uses URIs and needs certain characters to remain un-encoded. Note that this method does not encode the ' character, as it is a valid character within URIs.Lastly, the encodeURIComponent() method should be used in most cases when encoding a single component of a URI. This method will encode certain chars that would normally be recognized as special chars for URIs so that many components may be included. Note that this method does not encode the ' character, as it is a valid character within URIs.
1.编码处理函数
1) encodeURI 返回一个对URI字符串编码后的结果。URL是最常见的一种URI;
2) decodeURI 将一个已编码的URI字符串解码成最原始的字符串返回;
3) 举例: < Script language = " javascript " > 输出结果如下: encodeStr: http://www.amigoxie.com/index.jsp?name=%E9%98%BF%E8%9C%9C%E6%9E%9C decodeStr: http://www.amigoxie.com/index.jsp?name=xind
2. 数值处理函数
1) parseInt 将一个字符串指定的进制转换为一个整数,语法格式为: parseInt(numString, [radix]) 第一个参数是要进行转换的字符串,是介于2到36之间的数值,用于指定进行字符串转换时所用的进制。 举例如下: 输出结果如下:默认情况下的结果:32:32;032:26;0x32:50 转为2进制的结果:32:NaN;032:0;0x32:0 转为8进制的结果:32:26;032:26;0x32:0 转为16进制的结果:32:50;032:50;0x32:50 11001010转换后的结果: 2进制:202;16进制:285216784 8进制:2359816;10进制:11001010 43abc转换后:43;abc43转换后:NaN;abc转换后:NaN
2) parseFloat方法 该方法将一个字符串转换成对应的小数。 eg. 输出结果如下: 4.11 5.1 3) isNaN方法 该方法用于检测前两个方法返回值是否为非数值型,如果是,返回true,否则,反回false
分享到:
相关推荐
URL编码是将非ASCII字符转换为可安全包含在URL中的形式,而URL解码则是将这些编码还原为原始字符。本文将详细介绍如何使用纯JavaScript实现GBK URL的编解码。 首先,我们需要了解GBK编码的基本原理。GBK编码是一种...
相反的过程称为URL解码,即把URL中的百分号编码恢复为原始字符。解码过程包括识别百分号("%"),然后将紧跟的两个十六进制数字转换回它们对应的ASCII字符。 5. **编码与解码库** 在编程中,大多数编程语言都提供了...
URL解码则是编码的逆过程,它将经过编码的URL还原成可读的形式。在接收端,服务器或者浏览器会自动进行URL解码,恢复原始的URL内容。对于开发者来说,理解并能手动进行URL编解码是十分必要的,特别是在处理表单提交...
4. URL解码的重要性 当服务器接收到带有编码的URL时,需要对其进行解码,恢复原始的字符形式。解码过程与编码相反,将百分号及后面两位十六进制数字转换回对应的ASCII字符。这个过程对于正确解析URL路径和查询参数...
JavaScript 对 URL 编码解码 JavaScript 中对 URL 编码和解码涉及到六个函数:escape、encodeURI、encodeURIComponent、unescape、decodeURI 和 decodeURIComponent。这六个函数的使用场景和特点分别是: escape ...
在编程领域,很多编程语言都内置了URL解码的函数,例如在JavaScript中,我们可以使用`decodeURI()`或`decodeURIComponent()`方法;在Python中,有`urllib.parse.unquote()`函数;在Java中,可以使用`java.net....
URL解码则相反,它将编码后的URL还原成可读的形式。解码时,会找到所有形如"%xy"的序列,将它们转换回对应的ASCII字符。例如,"%20"会被转换为空格。 在编程中,许多语言都提供了内置函数来处理URL编码和解码。例如...
在描述中提到的“封装了一个简单的处理cgi中url解码的类”很可能就是一个专门为CGI环境设计的工具,用于解码URL中的编码数据。 该类可能包含以下关键方法: 1. `encode_url`: 这个方法会接收一个包含非ASCII或特殊...
3. **解码过程**:相反,URL解码就是将编码后的字符串恢复为原始形式。解码时,找到所有形如"%xy"的序列,将其转换为对应的ASCII字符或非ASCII字符。 4. **工具使用**:"URL编码解码工具.exe" 是一款实用的小程序,...
**URL解码** 则是将已编码的URL恢复为原始形式。这个过程会将百分号加两位十六进制数替换回对应的字符。在JavaScript中,可以使用`decodeURIComponent()`、`decodeURI()`函数来实现。 "codeURL编码解码工具"就是...
JavaScript提供了`decodeURI()`和`decodeURIComponent()`函数来处理URL编码的字符串,而`TextDecoder` API则可以解码非UTF-8的编码格式。 `TextDecoder`是一个强大的工具,它可以解码多种编码格式,如GBK、Big5等。...
在JavaScript中,`encodeURIComponent()`和`decodeURIComponent()`函数分别用于编码和解码。 4. **Unicode支持**:现代的URL编码不仅支持ASCII字符,还支持Unicode字符集。在URL中,一个Unicode字符可能需要编码为...
总而言之,JavaScript提供了多种编解码方式以应对不同场景下对字符串的编码与解码需求。合理选择使用不同的函数,不仅能保证编码数据在传输过程中的完整性,也能确保数据的接收方能够正确解析数据。
这个名为“一个简单url编码解码”的项目,就是为新手提供了一个理解和实践URL编码与解码机制的实例。 URL编码是根据RFC 3986标准进行的,主要使用百分号(%)表示非ASCII字符或特殊字符的ASCII十六进制值。例如,...
总的来说,掌握16进制转字符串和URL解码的技术,对于理解和处理网络数据、编程以及数据交换至关重要。这些基本技能广泛应用于Web开发、数据解析、信息安全等多个IT子领域。通过使用所提供的小程序,用户可以快速便捷...
Delphi进行Base64编码后,如果使用javascript解码,会出现如下问题: 1. 汉字乱码 2. 空格变成 + 号 本资源演示Delphi代码,实现javascript能正确进行Base64解码,不出现上述2个问题。 解决思路:进行Base64前先...
这篇博文“URL解码与转码”可能探讨了如何正确地处理URL中的编码问题,以确保数据在网络传输过程中不被破坏或误解。 URL编码是基于标准的百分号编码(%编码),它是UTF-8字符集的一部分。在URL中,某些字符如空格、...
这个时候,出现了encodeURIComponent、decodeURIComponent,它可以完全的对URL进行编码解码,但是遇到例如搜索引擎用到的部分转码,又摸不到门了,没问题,PHP官方出了一个解决方案: 代码如下: decodeURIComponent...
`Encode_ Decode Tools`是一款用于URL编码和解码的工具,它可以帮助开发者和用户方便地处理这些编码问题。这款工具可能提供了简单的用户界面,允许用户输入URL或字符串,然后点击按钮进行编码或解码操作。它支持对...