百度
360搜索
搜狗搜索

js urlencode编码,js中怎么解码后台urlencode的字符串详细介绍

本文目录一览: Ajax请求中怎么用JS对参数进行urlencode编码呢?

var where = encodeURI(" 使用铺位图='是'");

什么是URL编码和URL解码?

urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%。 urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原理就是把十六进制字符串转换为中文字符
通过以下两种方式都可以编码和解码

1、
用JS对URL进行编码和解码
JavaScript中有三个可以对字符串编码的函数,分别是:
escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent。
escape()
函数可对字符串进行编码
语法
escape(string)
encodeURI()
函数可把字符串作为
URI
进行编码。
语法
encodeURI(URIstring)
该方法的目的是对
URI
进行完整的编码,因此对以下在
URI
中具有特殊含义的
ASCII
标点符号,encodeURI()
函数是不会进行转义的:;/?:@&=+$,#
encodeURIComponent()
函数
encodeURIComponent()
函数可把字符串作为
URI
组件进行编码。
escape()除了
ASCII
字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI()
用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URIComponent(指请求参数)应当是最常用的,它可以讲参数中的中文、特殊字符进行转义,而不会影响整个URL。

2、用asp.net
对URL进行编码和解码
用System.Web.HttpUtility.UrlEncode编码:
string
tmp1
=
System.Web.HttpUtility.UrlEncode(".net技术",
System.Text.Encoding.GetEncoding("GB2312"));
string
tmp2
=
System.Web.HttpUtility.UrlEncode(".net技术",
System.Text.Encoding.UTF8);
用System.Web.HttpUtility.UrlDecode
或者
Server.UrlEncode
相应的进行解码
参考资料:
URL如何编码与解码
http://www.studyofnet.com/news/167.html

js中文转码url问题

  js中文转码默认是用urlencode,而php默认的是rawurlencode(),所以编码出来就不一样。
  PHP中对于URL进行编码,可以使用 urlencode() 或者 rawurlencode(),二者的区别是前者(urlencode)把空格编码为 '+',而后者(rawurlencode)把空格编码为 '%20',不过应该注意的是,在编码时应该只对部分URL编码,否则URL中的冒号和反斜杠也会被转义。
  在解码时,可以使用相应的 urldecode() 和 rawurldecode(),相应地,rawurldecode() 不会把加号('+')解码为空格,而 urldecode() 会。
  语法:urlencode($str) rawurlencode($str) urldecode($str) rawurldecode($str)
  GBK与UTF-8的转码:
  iconv("gbk","utf-8","php中文转码");//把中文gbk编码转为utf8
  iconv("utf-8","gbk","php中文转码");//把中文utf8编码转为gbk
实现上可能是这样的。原因使他们对默认输出流的编码方式不一样。
你线看看pho默认的输出编码类型,
然后在JS的输出流上使用相同的编码控制类型。
你也可以让他们都使用相同的编码类型。
大哥 都给力了 就采纳吧 求经验升级啊TT

server.urlencode编出的码JS怎么解码

request("变量") 接收到的数据就是已经解码的数据
给你两个函数,或许你用得着
虽然ASP中的request会自动解码经过url编码的字符串,但是Request.BinaryRead(Request.TotalBytes)取得post数据时却不会解码,所以要进行解码
下面是我找到的一个ASP中server.urlencode函数的解码函数
Function URLDecode(enStr)
dim deStr,strSpecial
dim c,i,v
deStr=""
strSpecial="!""#$%&'()*+,.-_/:;<=>?@[\]^`{|}~%"
for i=1 to len(enStr)
c=Mid(enStr,i,1)
if c="%" then
v=eval("&h"+Mid(enStr,i+1,2))
if inStr(strSpecial,chr(v))>0 then
deStr=deStr&chr(v)
i=i+2
else
v=eval("&h"+ Mid(enStr,i+1,2) + Mid(enStr,i+4,2))
deStr=deStr & chr(v)
i=i+5
end if
else
if c="+" then
deStr=deStr&" "
else
deStr=deStr&c
end if
end if
next
URLDecode=deStr
End function
再附一个编码函数,这个与server.urlencode不一样之处是:server.urlencode会将html或Xml等标签,如
也会进行编码,而下面这个函数不会。我是用下面的进行编码,再解码,因为我用post时用Xml的。
private Function URLEncoding(vstrIn)
strReturn = ""
For i = 1 To Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
If Abs(Asc(ThisChr)) < &HFF Then
strReturn = strReturn & ThisChr
Else
innerCode = Asc(ThisChr)
If innerCode < 0 Then
innerCode = innerCode + &H10000
End If
Hight8 = (innerCode And &HFF00)\ &HFF
Low8 = innerCode And &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
End If
Next
URLEncoding = strReturn
End Function

js 传值url 乱码问题

JS是UTF-8的,那你接收的文件是不是GB类型的?两者语言不一致,导致出现乱码。
我刚调试完自己写的类似ajax的一段JS。
ajax({
url:"http://",
method:'post',
type:"gb2312",
success:function(){...}
})
这里多了“type:gb2312”,就是告诉ajax,提交类型为非UTF-8类型,在提交的时候就可以将中文字符通过VBurlencode进行转换。比将“中国”转换成“%D6%D0%B9%FA”,而非escape("中文文字")。
1.客户端提交时使用encodeURI或者encodeurIcompent参数来进行utf-8编码,然后发送给服务器,如果使用post方式的话可以通过request.setCharacterEncoding来设定用来解读参数的编码。如果用get方式的话,使用new String(arg.getBytes("iso-8859-1"),"utf-8")的方式来转码。
2.发送ajax请求时,请使用post方式,由于AJAX默认使用utf-8的编码提交参数,因此如果不是文件上传得话,为ajax的Content-Type请求头设置"application/x-www-form-urlencoded;charset="utf-8",以此来通知服务器,客户端发送参数所使用的编码。这样,服务器端可以直接通过String word = request.getParameter("word");来获取经过转码后的参数值,省去了request.setCharacterEncoding。

在js中编码 在C#函数中解码的问题

你说的是UrlEncode 的情况吧,主要是为了传中文才这么处理的
其实是utf-8码或者gbk码
你可以调用HttpUtility.UrlEncode,HttpUtility.UrlDecode或者Server.UrlEncode,Server.UrlDecode来实现编码和解码
例如Response.Write(Server.UrlEncode("汇编"))
HttpUtility.UrlDecode方法可以进行解码操作。
C#自带的加密: StringFormat.Encrypting
url:XXX.aspx?username=encodeURIComponent(document.getElementById("userName").value);
CS文件:Server.UrlDecode(Request["username"]);
1、将十六进制转化为字符;2、将字符转化为ascll码
public string HexToStr(string mHex) // 返回十六进制代表的字符串{mHex =mHex.Replace(" ", "");if (mHex.Length <= 0) return "";byte[] vBytes= new byte[mHex.Length / 2];for (int i = 0;i < mHex.Length; i += 2)if (!byte.TryParse(mHex.Substring(i, 2), NumberStyles.HexNumber, null, outvBytes[i / 2]))vBytes[i / 2] = 0;returnASCIIEncoding.Default.GetString(vBytes);}

阅读更多 >>>  怎么更改linux字符

javascript json可以使用gbk编码吗

js 只可以解析 utf-8 的url中文字符编码。
如果浏览器页面是 chrset=gbk 编码,那么经过 解析后 浏览器应该会自动把utf-8的字符转换gbk,所以在 浏览器端 就不需要 utf-8 编码在转成 gbk 了。
看看我们用到的函数:
php函数:
urlencode 这个函数是进行url编码的
iconv 这个函数是把 gbk编码 转换成 utf-8编码 ,因为js只能解释 utf-8编码
js函数:
unes cape 这个函数是 解码 utf-8编码的 ,解码后依然是utf-8 字集 , 但是浏览器会根据head charset自动转换成gbk编码, 这样js里就可以不用 php 中iconv 再次转换了。
decodeURI 这个函数是 解码 url 编码的 ,它和php的 urlencode 对应 ,别纠结 url 和 uri 。但是 decodeURI 的参数必须是 utf-8编码 , 所以 php 用iconv 转换了 。
下面上案例,就简单的 两个 例句 :
php的:
<!--?phpheader("Content-Type:text/html;charset=gbk2312");
$arr=array("one"=>"如果在这里改变", "two"=>"2222222222", "three"=>"3333333");
$arr["one"] = urlencode(iconv("gbk","utf-8",$arr["one"]));
echo json_encode($arr);
===========================================================================================
js的 :

js使用jsonencode转码

js使用jsonencode转码在向前端传递数据的时候,我们经常要把数据按照一定格式传递,如json格式,php中用json_encode来转换,但是这里通常会出现一个问题,那就是如果要转换的数据中包含中文,那么json_encode会自动将其中文字符转换成unicode编码。在调用json_encode 的时候我们可以先用urlencode()把它转换成unicode编码,经过json_encode后,再用urldecode解码,这样就能原样把数据传输到前台。在进行JS开发过程中,尤其是在开发报表时,报表已集成到Web页面中,通过在页面传递参数至报表中时,会发现有时某些参数值,传递到报表中是显示为问号或乱码等等一系列不能正常显示的情况。这是由于浏览器和报表服务器的编码不同,字符多次进行编码转换时出现错误导致字符的显示出现乱码,尤其是中日韩文和特殊字符更容易出现乱码问题。
以开发报表软件FineReport为例,在给报表服务器发送请求之前,对URL或者只对URL里面的参数名字和参数值,进行cjkEncode的编码,该方式兼容了各种不同的字符集,如ISO8859-1、 UTF-8、 GBK、 ENU_JP,尤其对中日韩文的处理采取了统一的方案。

使用javascript处理URL中的中文部分

看图片应该就明白了
encodeURI() 直接转就行了
JavaScript中存在几种对URL字符串进行编码的方法:escape(),encodeURI(),以及encodeURIComponent()。这几种编码所起的作用各不相同。
escape() 方法:
采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。比如,空格符对应的编码是%20。
不会被此方法编码的字符: @ * / +
encodeURI() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。
不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + '
encodeURIComponent() 方法:
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里面包含了URI的几个部分的话,不能用这个方法来进行编码,否则 / 字符被编码之后URL将显示错误。
不会被此方法编码的字符:! * ( ) '
因此,对于中文字符串来说,如果不希望把字符串编码格式转化成UTF-8格式的(比如原页面和目标页面的charset是一致的时候),只需要使用 escape。如果你的页面是GB2312或者其他的编码,而接受参数的页面是UTF-8编码的,就要采用encodeURI或者 encodeURIComponent。
所以总结为:
如果你是 GB2312 编码,使用 escape 函数
如果你是 UTF8 编码 ,还可以使用 encodeURIComponent 函数
兼容 IE6 IE7 IE8 FF3.5

js中怎么解码后台urlencode的字符串

你可以尝试使用decodeURI(),用法如下:
var str = 'abcdefg'decodeURI(str)

网站数据信息

"js urlencode编码,js中怎么解码后台urlencode的字符串"浏览人数已经达到18次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:js urlencode编码,js中怎么解码后台urlencode的字符串的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!