本文目录
- 怎么将字符串转码成urlencode的形式
- php中urldecode()和urlencode()起什么作用啊
- httputility.urldecode的参数可以是int 类型吗
- URLDecoder是什么
- 为什么要对url进行encode
- 什么是URL编码和URL解码
- 火车头怎么进行UrlDecode解码
- 解密-php文件$O00OO0=urldecode(“%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%
怎么将字符串转码成urlencode的形式
URLEncode方法是把任何我们给出的参数转换成适合放在URL中的字符串。具体规则:
1。字母,数字,连字符不变。
2。空格转换成加号。
3。其他所有的字符转换成用百分号表示,后跟字符的两位十六进制编码。
URLDecode功能相反。
例子:
String param = request.getParameter(“userName“); // param:%E5%AD%99%E6%82%9F%E7%A9%BA1
String userName = URLDecoder.decode(param, “UTF-8“); // 孙悟空1
urlEncode
userName // 孙悟空1
String url = URLEncoder.encode(userName, “UTF-8“); //%E5%AD%99%E6%82%9F%E7%A9%BA1
这样就很清楚了,urlencode是转码,urldecode是解码
php中urldecode()和urlencode()起什么作用啊
urlencode()编码:对字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。
urldecode()解码:还原 URL 编码字符串。
示例:
《?php
header(“Content-Type:text/html; charset=utf-8“);
//对参数值进行编码
$parm=urlencode(“演示php-mysql“);
//拼接url
$url=“decode.php?par=“.$parm;
?》
《a href=“《?php echo $url;?》“》urlencode演示《/a》
点击连接后地址栏中汉字被编码了:
http://localhost/decode.php?par=%E6%BC%94%E7%A4%BAphp-mysql
------------------------------------------------------------------------
//decode.php
《?php
//获取参数值
$parValue=$_GET[’par’];
//解码
echo urldecode($parValue);
//运行结果:演示php-mysql
?》
httputility.urldecode的参数可以是int 类型吗
这是修改的语句,你试一下,看看是不是你要的结果:
Console.Write(maths.math(0));
public
int
math(int
a)
{
b
=
a;
return
b;
}
URLDecoder是什么
UrlDecode是对字符串进行URL解码的编码处理函数。
通过urlencode编码后的字符串,可通过UrlDecode进行解码。
对Url路径加码的函数是UrlEncode 用法相反,和UrlDecode是一致对应的.
-urldecode
为什么要对url进行encode
.encodeURL函数主要是来对URI来做转码,它默认是采用的UTF-8的编码.
. UTF-8编码的格式:一个汉字来三个字节构成,每一个字节会转换成16进制的编码,同时添加上%号.
假设页面端输入的中文是一个逗中地,按照下面步骤进行解码
1.第一次encodeURI,按照utf-8方式获取字节数组变成[-28,-72-83],对字节码数组进行遍历,把每个字节转化成对应的16进制数,这样就变成了[E4,B8,AD],最后变成[%E4,%B8,%AD] 此时已经没有了多字节字符,全部是单字节字符。
2、第二次encodeURI,进行编码,会把%看成一个转义字符,并不编码%以后字符,会把%编码成%25.把数组最后变成[%25E4,%25B8,%25AD]然后就把处理后的数据[%25E4,%25B8,%25AD]发往服务器端,
当应用服务器调用getParameter方法,getParameter方法会去向应用服务器请求参数
应用服务器最初获得的就是发送来的[%25E4,%25B8,%25AD],应用服务器会对这个数据进行URLdecode操作,应用服务器进行解码的这一次,不管是按照UTF-8,还是GBK,还是ISO-8859,,都能得到[%E4,%B8,%AD],因为都会把%25解析成%.并把这个值返回给getParameter方法
3\、再用UTF-8解码一次,就得到“中“了。
想想看,如果不编码两次,当服务器自动解码的时候,假如是按照ISO-8859去解码UTF-8编码的东西,就是会出现乱码。
JS:
[sql] view plain copy
document.authorityForm.action = basePath3+“User_viewUser.do?id=“+id+“&roleName=“+encodeURI(encodeURI(roleName))+“&roleType=“+roleType;
Java后台:
[sql] view plain copy
roleName = java.net.URLDecoder.decode(getRequest().getParameter(“roleName“),“UTF-8“);
-字符
什么是URL编码和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
-urldecode
火车头怎么进行UrlDecode解码
VC环境实现UrlDecode示例
/*
URLEncode是这样编码的
1。数字和字母不变。
2。空格变为“+“号。
3。其他被编码成“%“加上他们的ascii的十六进制,规律是这样的
比如“啊”字 Ascii的十六进制是B0A1——》%B0%A1(Note:它是每个字节前加个%)。
*/
#include 《iostream》
#include 《string》
#include 《fstream》
#include 《ctype.h》
#include 《stdlib.h》
using namespace std;
typedef unsigned char BYTE;
inline BYTE toHex(const BYTE &x)
{
return x 》 9 ? x + 55: x + 48;
}
string urlEncoding( string &sIn )
{
cout 《《 “size: “ 《《 sIn.size() 《《 endl;
string sOut;
for( int ix = 0; ix 《 sIn.size(); ix++ )
{
BYTE buf;
memset( buf, 0, 4 );
if( isalnum( (BYTE)sIn[ix] ) )
{
buf = sIn[ix];
}
else if ( isspace( (BYTE)sIn[ix] ) )
{
buf = ’+’;
}
else
{
buf = ’%’;
buf = toHex( (BYTE)sIn[ix] 》》 4 );
buf = toHex( (BYTE)sIn[ix] % 16);
}
sOut += (char *)buf;
}
return sOut;
}
int main(int argc, char *argv)
{
string src;
ifstream inFile( “in.txt“ );
if( !inFile )
{
cout 《《 “not in.txt to read“ 《《 endl;
system(“PAUSE“);
return -1;
}
inFile 》》 src;
string sOut = urlEncoding( src );
cout 《《 sOut 《《 endl;
system(“PAUSE“);
return 0;
}
PHP urldecode示例
$str1=urlencode(“百度“); //$str1的值是%B0%D9%B6%C8
$str2=urldecode($str1); //$str2的值就是“百度”
-字符
解密-php文件$O00OO0=urldecode(“%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%
urldecode是地址栏编码方式,就是用百分号加上每个字符的十六进制值。解码很简单,可以使用javascript的unescape()来解码。如:
alert(unescape(“%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70“)); //解码成明文再弹出来显示。
在你提问的PHP代码中也可以直接在后面加一句输出显示的代码即可看到解码后的内容:-urldecode
echo $O00OO0;