`
hxy520882012
  • 浏览: 28787 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JS中EncodeURIComponent与编码总结

    博客分类:
  • js
阅读更多

JS中EncodeURIComponent与编码总结

    因为要新作系统,因此对于JS脚本又重新研究了一下。在对新的URL编码的时候发现,网页编码的格式对于JS的影响很大,在这里书写一点。

    {var B=siteUrl+this.actionUrl+(this.type==="all"?"":this.type)+"&SearchWord="+encodeURIComponent(A).replace(/'/g,"%27");$redirect(B)}}

    在制作的时候,发现传出去的数据包的编码全部是UTF-8格式的,而在改正网页编码后也同样没有反映,最后在修改了ENCODE成DECODE方式才解决问题。

下面转载一下关于编码与编码方式的内容:

escape、encodeURI、encodeURIComponent等方法的区别(2007-08-14 17:32:24)
IT/科技  

escape 方法
返回一个可在所有计算机上读取的编码 String 对象。

function escape(charString : String) : String
参数
charString
必选。要编码的任何 String 对象或文本。
备注
escape 方法返回一个包含 charstring 内容的字符串值(Unicode 格式)。所有空格、标点、重音符号以及任何其他非 ASCII 字符都用 %xx 编码替换,其中 xx 等于表示该字符的十六进制数。例如,空格返回为“%20”。

字符值大于 255 的字符以 %uxxxx 格式存储。

注意 escape 方法不能用来对“统一资源标识符”(URI) 进行编码。对其编码应使用 encodeURI 和 encodeURIComponent 方法。
要求
版本 1

请参见
encodeURI 方法 | encodeURIComponent 方法 | String 对象 | unescape 方法

适用于:Global 对象

encodeURI 方法
返回编码为有效的统一资源标识符 (URI) 的字符串。

function encodeURI(URIString : String) : String
参数
URIString
必选。表示编码 URI 的字符串。
备注
encodeURI 方法返回一个已编码的 URI。如果将编码结果传递给 decodeURI,则将返回初始的字符串。encodeURI 不对下列字符进行编码:“:”、“/”、“;”和“?”。请使用 encodeURIComponent 对这些字符进行编码。

要求
版本 5.5

请参见
decodeURI 方法 | decodeURIComponent 方法

适用于:Global 对象

encodeURIComponent 方法
返回编码为统一资源标识符 (URI) 的有效组件的字符串。

function encodeURIComponent(encodedURIString : String) : String
参数
encodedURIString
必选。表示编码 URI 组件的字符串。
备注
encodeURIComponent 方法返回一个已编码的 URI。如果将编码结果传递给 decodeURIComponent,则将返回初始的字符串。因为 encodeURIComponent 方法将对所有字符编码,请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,则其中的斜杠也将被编码,这样,当该字符串作为请求发送到 Web 服务器时它将是无效的。如果字符串中包含多个 URI 组件,请使用 encodeURI 方法进行编码。

要求
版本 5.5

请参见
decodeURI 方法 | decodeURIComponent 方法

适用于:Global 对象

unescape 方法
从用 escape 方法编码的 String 对象中返回已解码的字符串。

function unescape(charString : String) : String
参数
charString
必选。要解码的 String 对象或文本。
备注
unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的字符都用 ASCII 字符集当中等效的字符代替。

以 %uxxxx 格式(Unicode 字符)编码的字符用十六进制编码 xxxx 的 Unicode 字符代替。

注意 unescape 方法不应用于解码“统一资源标识符”(URI)。请改用 decodeURI 和 decodeURIComponent 方法。
要求
版本 1

请参见
decodeURI 方法 | decodeURIComponent 方法 | escape 方法 | String 对象

适用于:Global 对象

decodeURI 方法
返回一个已编码的统一资源标识符 (URI) 的非编码形式。

function decodeURI(URIstring : String) : String
参数
URIstring
必选。表示编码 URI 的字符串。
备注
使用 decodeURI 方法代替已经过时的 unescape 方法。

decodeURI 方法返回一个字符串值。

如果 URIString 无效,将发生 URIError。

要求
版本 5.5

请参见
decodeURIComponent 方法 | encodeURI 方法

适用于:Global 对象

decodeURIComponent 方法
返回统一资源标识符 (URI) 的一个已编码组件的非编码形式。

function decodeURIComponent(encodedURIString : String) : String
必选的 encodedURIString 参数是一个表示已编码的 URI 组件的值。

备注
URIComponent 是一个完整的 URI 的一部分。

如果 encodedURIString 无效,则将产生 URIError。
ANSI,unicode,gb2312,utf-8和URI编码总结
ANSI和unicode,Ansi是ascii码字符集,unicode是unicode字符集,在Ansi上各国对ascii码都进行庞大的互不兼容的扩充,大陆对Ansi的扩充是ascii->GB2312(简体中文)->GBK(繁体中文)->GB18030(加了少数民族语言),台湾对Ansi的扩充是ascii->BIG5,GB2312和BIG5互不兼容。8 h$ h1 ]1 Z. o( T! T T; n% u- Q
unicode是推翻ascii的扩充后新的世界范围的字符集,现在推荐使用unicode,utf-8是unicode的编码之一,中文网页中经常使用gb2312和utf-8,在html文件头应当告知浏览器自己的编码方式,如果是gb2312文档则是ANSI格式的,若是utf-8的话就是unicode格式的。在web开发的时候要尽可能用同一的编码,同时要明确指定服务器端和浏览器端的编码。如果有不统一,比如指定了服务器端是gb2312在浏览器端是utf-8,浏览器和服务器之间传递数据就需要编码转换,或者传输的时候指定编码。
* m3 O( J9 Y+ M9 GURI编码是ANSI和unicode之间进行交互的中间格式,浏览器端提交的时候用URI编码,将ANSI转换成可读的串,服务器端根据自己的编码对URI串解码成unicode或者什么的。0 T$ h, j+ ]! v4 Q2 m# E
js对汉字进行URI编码的函数是encodeURIComponent和decodeURIComponent
$ ~5 q S2 ?. znab用的都是utf8编码,提交中文的时候不用再encodeURIComponent,读中文的时候也不用decodeComponent,发出去的数据都是unicode码,在服务器端保存的也是unicode码,js得到unicode编码的json串要eval成对象后,就能直接得到中文,而不是unicode串。

分享到:
评论

相关推荐

    JS中三种编码方式(escape,encodeURI,encodeURIComponent)

    在这个例子中,`encodeURIComponent()` 确保了所有特殊字符都被正确编码,使得URL能够被解析器正确识别。 在实际编程中,根据需要编码的数据类型和目的,选择合适的编码方法至关重要。通常,`encodeURIComponent()`...

    JS实现URL编码转换中文

    在JavaScript中,提供了`encodeURIComponent`和`decodeURIComponent`两个方法来进行URL编码与解码操作。 - **`encodeURIComponent`**:该函数接受一个字符串作为参数,并返回一个经过URL编码的字符串。 - **`...

    encodeURIComponent encodeURI 中文转GBK编码

    serialize , encodeURIComponent encodeURI 中文转成GBK编码 encodeURIComponent encodeURI 默认转 utf-8 ;重写方法 转成GBK

    encodeURIComponent编码后java后台的解码

    同学的毕业设计出现JavaScript用encodeURIComponentt编码后无法再后台解码的问题。 原来他是这样写的: window.self.location="searchbytext.action?searchtext="+encodeURIComponent(seartext);

    js对中文字符串进行gb2312编码解码

    在JavaScript(JS)中,处理中文字符编码是一个常见的需求,特别是在与服务器交互或者处理文本数据时。GB2312编码是一种在中国大陆广泛使用的简体中文字符集,它包含了6763个常用汉字和一些其他字符。在JavaScript中...

    深入解析:JavaScript中的`encodeURIComponent`与`decodeURIComponent`方法

    encodeURIComponent和decodeURIComponent是JavaScript中处理URL编码和解码的重要工具。它们在Web开发中的应用广泛,对于确保数据的正确传输和处理至关重要。通过本文的详细介绍和示例代码,你应该能够理解这两个函数...

    encodeURIComponent 文档

    - 与`encodeURIComponent`相比,`encodeURI`编码的范围更广,但并不适用于URL中的每个组成部分。 #### 三、使用场景分析 1. **URL传递汉字的解决方法**: - 当需要通过URL传递含有中文字符的数据时,应该使用`...

    Javascript中escape(),_encodeURI()和encodeURIComponent()之精析与比较.doc

    在JavaScript中,`escape()`, `encodeURI()`, 和 `encodeURIComponent()` 是三个常见的字符串编码函数,它们各自有独特的用途和特点。理解它们的区别对于编写健壮的JavaScript代码至关重要。 首先,`escape()` 函数...

    js gb2312编码

    在JavaScript(js)编程语言中,GB2312编码是一种早期的中文字符编码标准,主要应用于简体中文环境。GB2312编码表包含了6763个常用汉字和一些其他符号,为中文信息处理提供了基础。然而,在网络传输和处理中,由于GB...

    JS中encodeURIComponent函数用php解码的代码

    `encodeURIComponent`是JavaScript中用于对URI组件进行编码的一个函数,它可以确保特殊字符和非ASCII字符在URL中正确表示。当这些编码后的字符串需要在PHP中解码时,通常会用到`urldecode`和`iconv`这两个函数。 `...

    java和js相互base64编码解码

    在Java和JavaScript中,Base64编码和解码是两个重要的功能,用于处理这种编码格式。下面将详细阐述这两个编程语言中实现Base64编码和解码的方法。 首先,让我们关注Java。在Java 8及更高版本中,已经内置了`java....

    url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    ### URL的三个JS编码函数:`escape()`, `encodeURI()`, `encodeURIComponent()` 简介 在Web开发中,经常遇到的一个问题是URL传递中文字符时出现乱码的情况。为了解决这一问题,JavaScript提供了几种不同的编码方法...

    java 中类似js encodeURIComponent 函数的实现案例

    总结来说,Java中实现`encodeURIComponent`和`decodeURIComponent`的方法需要额外的转换步骤,以确保与JavaScript的对应函数行为一致。这些自定义的实现可以帮助你在Java代码中处理URI编码和解码,尤其是在需要与...

    escape、encodeURI、encodeURIComponent 区别详解

    在前端开发中,经常需要用到字符串编码与解码的方法来确保数据在网络传输中的正确性与安全性。本文将详细介绍 `escape()`、`encodeURI()` 和 `encodeURIComponent()` 这三个函数的区别及其应用场景。 #### 1. `...

    js中编码函数:escape,encodeURI与encodeURIComponent详解

    而他们之间的异同却困扰了很多的Javascript初学者,这篇文章详细的给大家介绍了js中编码函数:escape,encodeURI与encodeURIComponent的相关资料,需要的朋友可以参考下。

    javascript编码与解码

    总结一下,JavaScript中的编码与解码涉及到了Unicode、UTF-8、UTF-16、URL编码、HTML实体编码等多个方面。理解并掌握这些知识对于编写兼容各种环境的Web应用至关重要。同时,`TextDecoder`和`TextEncoder`是现代...

Global site tag (gtag.js) - Google Analytics