在浏览一些网址中,我们可以看到这样一些特别的现象,就是网址中会出现一些百分号(%)和一字母数字组成的让我们看不明白的乱码,这究竟是怎么回事,它们又都是些什么东西呢?
其实,这里由%和数字字母组成的有规律性的“乱码”它们并不真是乱码,它们是一种特殊的编码,有电脑基础的人就知道,计算机它是不认得中文汉字的,要让计算机认识这些编码必须要转换成一些字母和数字等组成的代码。
事实上,我们在浏览器地址栏中看到的由%号和字母数字组成的乱码,我们可以发现它们有一些规律,即都是三个字符一组,排在最前面的肯定是百分号%。它们不是什么乱码,它们其实是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个字符,不认识汉字。(作者:icpoline)
http://www.icpoline.com/archives/4109
=======================================================
利用百度进行URL编码解码
分享到:
相关推荐
十六进制编码是一种将字符转换为数字表示的方法,尤其在处理非ASCII字符集(如中文)时非常有用。本文将详细介绍如何将中文字符转换成十六进制编码,并通过一个简单的步骤进行演示。 中文字符集主要有GB2312、GBK、...
在IT领域,尤其是在编程与数据处理中,十六进制与字符编码之间的转换是一项常见的需求,尤其是在处理非英文字符集如中文汉字时。本篇文章将深入探讨如何在C#语言中实现十六进制与中文汉字之间的相互转换,这不仅对...
这在处理中文字符的编码问题时非常有用,例如在网页编码、数据库存储或网络传输过程中,有时需要将中文字符转换为十六进制以避免乱码问题。 描述中的“内带VB源码”提示我们这个功能是通过Visual Basic (VB)实现的...
在Java编程语言中,处理Unicode编码和十六进制字符转换是一项常见的任务,特别是在处理文本数据时。本示例探讨了如何使用Java实现从Unicode十六进制字符串到中英文字符的转换,以及反过来的过程。理解Unicode和UTF...
汉字,作为中文的表示方式,是由多个字节组成的,而十六进制则是一种广泛用于表示数字和二进制数据的格式。在这个"汉字与十六进制互转工具"中,我们主要关注的是如何将汉字转换为十六进制编码,以及如何将十六进制...
可以把十六进制转换成中文、文本、字符串,也可以把中文、文本、字符串转换成十六进制,同时生成十六进制与字符的对照表,主要用于对抓包的十六进制数据进行分析,也适用网络通信程序的开发和调试。 注意,如果十六...
二进制文件的十六进制查看器是一种工具,它允许用户查看和分析计算机中的二进制数据,并以十六进制格式显示。这种查看器对于理解底层数据结构、调试程序、检查文件完整性或在网络通信中解析数据包至关重要。下面将...
可以把十六进制转换成中文、文本、字符串,也可以把中文、文本、字符串转换成十六进制,同时生成十六进制与字符的对照表,主要用于对抓包的十六进制数据进行分析,也适用网络通信程序的开发和调试。 注意,如果十六...
HxD是一款简单的十六进制编码处理软件。通过HxD可以快速打开大容量的文件,还能够进行基本的十六进制编码处理操作。HxD Hex Editor软件支持编辑、剪切、复制、粘贴、插入或删除文件数据等功能,满足用户的多种编辑...
二进制文件是计算机可读但不可读的文件(如果在文本编辑器中打开,二进制文件将显示为乱码)。 010 Editor十六进制编辑器是一个程序,允许您查看和编辑二进制文件和高级十六进制编辑器的各个字节,包括010编辑器还...
在Android开发中,有时我们需要将字符串与十六进制值之间进行转换,这在处理数据存储、网络通信等场景中很常见。然而,当涉及到中文字符时,如果不正确地处理编码和解码过程,就可能出现乱码问题。这个问题的根源...
在使用Netty进行TCP/IP通信时,我们可能会遇到数据进制转换导致的乱码问题。这个问题通常是由于数据编码不一致或者处理方式不当所引起的。在本文中,我们将深入探讨Netty中的进制转换和字符编码,并提供解决方案。 ...
在计算机科学中,十六进制是一种常用的数据表示方式,因为它可以简洁地表示二进制数,且与计算机内部的二进制表示有直接对应关系。WinHex提供了直观的界面,让用户可以查看和编辑以十六进制格式表示的文件内容,这...
在编程领域,字符串和十六进制之间的转换是一个常见的需求,特别是在数据处理、网络通信和存储等领域。本篇文章将深入探讨如何在支持汉字的情况下,利用源码实现字符串与十六进制值之间的转换。首先,我们需要理解...
描述中的“把ASCII化成二进制方式(4位二进制表示1位十六进制)”说明我们将探讨如何将ASCII码转换为二进制,然后以4位二进制的形式表示一个十六进制数。每个ASCII字符由7位二进制数表示,因此,为了将ASCII字符转换为...
java代码,从16进制数直接转化成字符串(包括中文)简单好用
图片、音频、视频或二进制文件在Wireshark中通常显示为乱码,因为它们的格式不是为人类阅读设计的。在这种情况下,理解数据需要对其解码或使用相应的工具进行分析。 3. **加密数据**:部分网络通信使用加密技术,如...
在C#编程语言中,16进制(Hexadecimal)是一种常见的数字表示方式,它使用16个符号(0-9以及A-F)来代表数值。在处理与字符编码相关的任务时,例如Unicode编码,可能会涉及到将16进制值转换为汉字。Unicode是一个...
010 Editor破解版是一款功能强大的代码编辑器,使用可帮助用户轻松编辑任何文件、驱动器或进程的...二进制文件是计算机可读但不可读的文件(如果在文本编辑器中打开,二进制文件将显示为乱码)。十六进制编辑器是一个