最新消息:iOS编程开发交流群(6906921) ,Mac.Cocoa开发交流群(7758675) 欢迎iOS/macOS开发编程爱好及学习者加入!

解析网页地址栏网页地址出现大串乱码不明白的英文

HTML 天狐 7544浏览 0评论

1.GET提交数据会出现一大串编码

2.在浏览一些网址中,我们可以看到这样一些特别的现象,就是网址中会出现一些百分号(%)和一字母数字组成的让我们看不明白的乱码,这究竟是怎么回事,它们又都是些什么东西呢?

其实,这里由%和数字字母组成的有规律性的“乱码”它们并不真是乱码,它们是一种特殊的编码,有电脑基础的人就知道,计算机它是不认得中文汉字的,要让计算机认识这些编码必须要转换成一些字母和数字等组成的代码。

事实上,我们在浏览器地址栏中看到的由%号和字母数字组成的乱码,我们可以发现它们有一些规律,即都是三个字符一组,排在最前面的肯定是百分号%。它们不是什么乱码,它们其实是UTF-8编码或者gbk(GB2312)编码,那些百分号(%)后面的数字和字母其实就是16进制数。

中文的gbk(GB2312)编码

如果是中文的gbk(GB2312)编码,那么它的形式应该是这样的,即一个汉字对应两组%xx,即%xx%xx,比如 http://www.baidu.com/baidu?tn=baidu&word=%D6%D0%B9%FA 这个网页地址是百度的,百度是使用GB2312编码的,这个网址中我们可以看到的特殊代码是“%D6%D0%B9%FA”,其中前面的“%D6%D0”就对应中文汉字“中”字,后面的“%B9%FA”就对应中国汉字“国”字。

中文的UTF-8编码

如果是中文的UTF-8编码,那么它的形式应该是这样的,即一个汉字对应三组%xx,即%xx%xx%xx,比如 http://www.icpoline.com/tag/%e7%bd%91%e6%b0%91 ,这个网址是本站IcpOline.com的网页,IcpOline使用的是UTF-8编码,这个网址中的”%e7%bd%91%e6%b0%91″对应着中文汉字“网民”,即“%e7%bd%91”对应汉字“网”,“%e6%b0%91”对应中文汉字“民”。

再看个例子

http://www.google.cn/search?q=%BA%BA%D7%D6&ie=GB2312&oe=GB2312&hl=zh-CN(GB2312编码)
http://www.google.cn/search?complete=1&hl=zh-CN&q=%E6%B1%89%E5%AD%97&meta=&aq=null(UTF-8编码)

上面这两个地址在浏览器中都会显示谷歌关于关键词“汉字”的搜索结果网页,只不过前面的一个是GB2312编码网页,后面一个是UTF-8编码网页,我们可以很明显的看出它们中“乱码”的区别。这样就可以替换上述网址格式中粉色部分的“乱码”来解码。

为什么要使用这样的编码?

这是为了兼容一些设备,有些设备只能传ASCII码,只认识128个字符,不认识汉字。

总结:
那些不是乱码,是一种编码,一个百分号+两位16进制数表示一个汉字
我们常用的数字是0~9,这是十进制的,逢十进一的
二进制是0和1,逢2进1
十六进制是0~9外加A~F,A表示10,F表示15,逢G进1
还有八进制,0~7,逢8进1

转载请注明:天狐博客 » 解析网页地址栏网页地址出现大串乱码不明白的英文

微信 OR 支付宝 扫描二维码
为天狐 打赏
非常感谢你的支持,哥会继续努力!
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址