url传递中的特殊符号的编码以及中文编码
来源:互联网 发布:linux防止ssh暴力破解 编辑:程序博客网 时间:2024/05/22 09:37
当网页上的表单(form)通过get方式提交数据到Web服务器时,'?', '&', '=', '%', '+' 等符号在提交的数据中都有特殊的定义和用途。因此,如果所要提交的某个表单项中,包含这些符号,那么这些符号就需要进行一下转化,然后服务器再进行逆向转化而得到本来所要提交的数据。
转化的格式是:%XX (百分号再跟上被转化符号的16进制编码)。比如:'?' 会被转化成 '%3F',空格 ' ' 会被转化成 '+' 或者 '%20'。
如果所要提交的表单数据中,包含有汉字,那么浏览器会将会将每个汉字根据当前页面所使用的的编码转化成字节,然后将每个字节采用“%XX”的格式提交到服务器。服务器端遇到“%XX”格式的数据时,会根据“XX”编号得到字节,然后再根据同样的编码得到字符串。
下表中列出了一些URL特殊符号及编码
1. + URL 中+号表示空格 %2B
2. 空格 URL中的空格可以用+号或者编码 %20
3. / 分隔目录和子目录 %2F
4. ? 分隔实际的 URL 和参数 %3F
5. % 指定特殊字符 %25
6. # 表示书签 %23
7. & URL 中指定的参数间的分隔符 %26
8. = URL 中指定参数的值 %3D
特别注意的是当出现中文的时候必须先将其转化为UTF-8码,然后将UTF-8码改写为%XX的形式
例如“中”转化后的UTF-8码为FFFFFFE4、FFFFFFB8、FFFFFFAD,之后我们要改写为%E4%B8%AD
具体的GB2312码(中文)与UTF-8码相互转换见http://blog.csdn.net/aidy22/archive/2009/08/04/4406503.aspx
//将你输入的字符串转化为URL支持的码
CString CheckCString(char* input)
{
int len = strlen(input);
CString output="";
for (int i=0; i<len; i++)
{
if (input[i]<0)//中文
{
char inTemp[3]={0};
inTemp[0] = input[i];
inTemp[1] = input[i+1];
inTemp[2] = '/0';
CString o = GBToUTF8(inTemp);//GB码转化为UTF8码
CString name;
for (int j=0; j<3; j++)
{
CString a;
a.Format("%X",o[j]);
a.Replace("FFFFFF","");
name+="%";
name+=a;
}
++i;
output+=name;
}
else//其他的
{
output+="%";
char b[2]={0};
sprintf(b,"%X",input[i]);
output+=b;
}
}
return output;//返回值
}
- url传递中的特殊符号的编码以及中文编码
- URL直接传递特殊符号编码
- URL传递中文编码问题
- IOS中URL的编码,对RUL中的中文以及字符进行编码处理
- url编码 处理特殊符号
- 中文在URL中的编码
- 中文在URL中的编码
- JSP使用URL编码传递中文参数问题的解决
- iOS Url特殊符号编码问题
- Cell选中问题 以及 URL中文编码
- 使用jquery获取url以及使用jquery获取url参数以及中文编码乱码的问题
- url中带特殊符号可能出现编码的错误
- iOS开发 URL编码之对特殊符号的处理
- URL编码 传递
- 对url中的中文参数进行编码
- C# 中文在URL中的编码
- java 编码URL中的空格,中文
- url参数以及url的编码解码
- 一次傻瓜式的md5暴力破解(进行中)
- gcc和g++的区别
- 关于时间简单的FUNCTION
- 面试上司 你想过没有
- Eclipse+tomcat的安装配置
- url传递中的特殊符号的编码以及中文编码
- webgame 数据缓存一思路
- SNS 社会性网络服务
- 比较有用的命令行
- java JTree树 叶子节点 不同图标
- CAST 和 CONVERT的区别
- GPRS problem fixed
- C++ 枚举类型。。。
- 高精度计算----加法运算