`
hxy520882012
  • 浏览: 29341 次
  • 性别: 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实现URL编码转换中文

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

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

    在JavaScript(JS)中,对字符串进行编码是处理URL、非ASCII字符或准备数据传输时常见的操作。有三种主要的编码方法:`escape()`, `encodeURI()`, 和 `encodeURIComponent()`。它们各自有不同的应用场景和特点,下面...

    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...

    java和js相互base64编码解码

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

    在asp中使用js的encodeURIComponent方法

    总结来说,在ASP中使用JavaScript的encodeURIComponent方法需要通过ASP的标签嵌入JavaScript函数。这个函数可以对需要作为URL一部分的字符串进行编码,以确保数据在传输过程中的安全和准确。同时,处理用户输入时,...

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

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

    纯Javascript脚本实现GBK URL编解码

    1. **GBK编码**:JavaScript的内置`Buffer`对象(在Node.js环境中)或`TextEncoder` API(在浏览器环境中)可以用于GBK编码。首先,需要一个GBK编码表,将Unicode字符映射到GBK的字节序列。然后,使用`Buffer`或`...

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

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics