`

JavaScript 转码方式

阅读更多
javaScript中URL编码转换,escape() encodeURI() encodeURIComponent


javaScript中URL编码转换,escape() encodeURI() encodeURIComponent

 在使用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.
分享到:
评论

相关推荐

    javascript转码GBK(u2gb.js)

    在JavaScript中,字符串默认采用Unicode编码,但有些环境或者接口可能需要GBK编码,这就需要进行转码操作。 `u2gb.js`的实现原理通常是基于JavaScript的内置函数`charCodeAt()`,该函数可以获取字符串中指定位置...

    JavaScript中文转码国际化

    用JavaScript脚本在网页实现的中文Unicode码转换

    javascript转码

    ### JavaScript中的URL编码方法 在JavaScript中,有三种主要的方法用于对字符串进行URL编码:`escape()`、`encodeURI()` 和 `encodeURIComponent()`。这三种方法虽然功能相似,但适用场景和编码规则各不相同。 ###...

    txt乱码解决处理文本文件转码编码csv器gbk互转utf-8自动批量工具html,js,css,md,json,log,py

    也支持指定编码方式后,一键转码 强制模式:不支持转码的字符可跳过(目前处理方式是替换成”?”),强制完成转码 支持批量转码 多线程高性能:批量处理方式是多线程并行处理,而不是排队一个接一个转码,多文件...

    javascript中 unicode和ascii转码

    **Unicode编码**则是一个更广泛的字符集,它的目标是为世界上所有语言提供一个统一的编码方式。Unicode采用16位或32位的二进制来编码,可以表示超过11万的字符,涵盖了世界上几乎所有的文字系统,包括汉字、希腊字母...

    微信转码源码.rar

    转码源码可能包含了将常规JavaScript API调用转换为微信小程序API的逻辑。 5. **打包工具**:为了减小程序包大小和提高加载速度,转码源码可能还包括代码压缩、合并和优化的工具。这些工具可能基于Webpack或其他...

    js二维码生成中文转码

    在IT行业中,二维码作为一种高效的信息传递方式,被广泛应用于各种场景。JavaScript(简称js)作为浏览器端常用的编程语言,能够方便地实现二维码的生成。在处理包含中文字符的二维码时,由于编码问题,我们需要进行...

    转码器(WAP应用)

    转码器的主要任务是对HTML、CSS、JavaScript等Web内容进行处理,以适应WAP设备的限制。这些限制包括屏幕尺寸较小、处理器性能较低以及网络连接速度较慢。通过转码,开发者可以确保内容在手机或其他WAP设备上能够快速...

    视频格式转码源码

    本文将深入探讨如何使用JavaScript(JS)实现视频转码,以适应网页播放的需求。 标题"视频格式转码源码"表明我们要讨论的是一个利用编程语言进行的视频编码转换过程,而在这个案例中,我们使用的编程语言是...

    swfupload上传并转码视频和jquery.uploadify的aspnet例子

    本文将详细讲解如何实现基于SWFUpload和jQuery.uploadify的视频上传及转码功能,这对于ASP.NET开发者来说是非常实用的知识点。 首先,SWFUpload是一个JavaScript库,它允许在不离开页面的情况下进行文件上传。这个...

    前后台字符集转码.txt

    根据提供的文件信息,本文将详细解析前后台字符集转码的相关知识点,包括字符集的基本概念、前后端如何处理字符集转码以及示例代码中的具体实现。 ### 字符集的基本概念 在计算机科学中,字符集(Character Set)...

    HTML 转码

    2. 在JavaScript字符串中插入HTML内容时,为了防止XSS(跨站脚本攻击),需要对用户输入进行转码。 3. 在URL中,某些字符如空格需要转码为"%20",以便浏览器能够正确解析。 接下来,我们谈谈工具有关的方面。在实际...

    网页转码方法和工具

    在JavaScript等支持数组操作的语言中,这种方式尤其方便,可以轻松实现动态加载、缓存和更新网页的功能。 在压缩包"tools"中,很可能包含了执行网页转码的工具和详细的使用文档。这样的工具通常会提供API接口或...

    ascii 转码工具 ~~~~

    压缩包中的"资源转换工具.hta"可能是这个ASCII转码工具的执行文件,hta文件是一种HTML应用程序(HTML Application),它结合了HTML、脚本语言(如JavaScript或VBScript)和ActiveX技术,可以在Windows环境中以独立...

    云转码上传客户端

    nw.dll和node.dll可能是使用Node.js技术构建的,Node.js是一个JavaScript运行环境,适用于开发跨平台的桌面应用。 4. **网络传输**:客户端与云端的通信需要稳定高效的网络连接。文件的上传通常采用HTTP或HTTPS协议...

    做网站排名经常用到的转码软件搜索引擎不能识别

    描述中的"转码软件"可能是指那些用来改变网页源代码格式或者内容呈现方式的工具,例如将JavaScript编码转换为HTML,或者使用特殊字符集来隐藏关键词等。这种做法的目的是想让网页在用户端显示正常,同时对搜索引擎...

    caut-javascript-ref:JavaScript Cauterize 转码器的参考实现

    为了深入了解这个转码器的工作原理和使用方式,你需要查看这些源代码文件,了解其内部结构和执行流程。 总之,JavaScript Cauterize转码器是一个关于JavaScript代码优化和转换的工具,关注点在于正确构建和使用原型...

    51EC模板转码专用工具1.0.rar

    此外,对于含有图片、CSS、JavaScript等非文本文件的模板,工具可能无法处理,需要手动检查并调整。 总结来说,"51EC模板转码专用工具1.0"是ECSHOP用户和开发者的重要助手,通过自动化处理,解决了编码转换的难题,...

    实测禁止百度转码终极解决方法

    描述中提到,许多网站遭遇了百度转码,使得原本的JavaScript跳转功能失效,即所谓的“feicai”现象。以下是针对这一问题的详细解决方案: 1. 设置Meta标签协议: - `...

    request拦截转码资料

    然而,如果服务器端不按照相同的编码方式解析,就可能导致乱码。 接着,我们探讨后端的处理。在Java Web开发中,服务器端通常使用`Servlet Filter`来拦截请求,这是一个在Servlet执行之前和之后可以插入自定义逻辑...

Global site tag (gtag.js) - Google Analytics