编码的一些问题
来源:互联网 发布:时空魔域 知乎 编辑:程序博客网 时间:2024/05/21 14:07
先从一个简单的编码说起
URL编码
URL只允许使用ASCII字符集中的可打印字符 (0x20 ~ 0x7e).【我也才注意到ASCII字符前面那一大块表示的字符是控制字符】。
但就算在这些可打印字符中,也有一些由于URL方案或HTTP协议中具有特殊含义,所以是不能直接写在URL中的。 这就需要用到URL编码了。
常见的有:
= %3d
% %25
空格 %20
新行 %0a
空字节 %00
值得一提的是 加号(+) 也可以代表空格(和%20地位相当)。
这里其实也是 用 % 后面接上那些字符的ASCII的十六进制值。
HTML编码
有许多字符具有特殊的含义,并被用于定义文档结构而非其内容。
通俗来说,html页面中不是以一对闭合的尖括号表示一个单位吗?<p></p> <body></body>等等。。。
那如果我想在我的页面上 显示一串符号,比如 <h1>i am the content</h1>
如果你直接在html代码中这样写,好吧,会显示加粗变大的 i am the content。 那我确实想输出 两个尖括号和其中的内容怎么办呢。这时候 就需要对 小于号< 大于号> 进行编码,让浏览器知道它不是代表html的一个结构边界符号,而是小于号大于号本身。有点啰嗦,但肯定明白了。。
有意思的是 我在代码里面 这样写 <h1><</h1> 在我以往的记忆来看,我没有对中间的小于号进行编码,应该报错才对,不过,我在几个浏览器都试了,浏览器会原样输出 那个变大加粗的 小于号。
1 任何字符都可以使用它的十进制ASCII码进行HTML编码。
" 代表 “
' 代表 ‘
2 任何字符都可以使用它的十六进制ASCII码进行HTML编码。
" 代表 “
$#x27 代表 ‘
Unicode编码
这个Unicode编码曾经让我迷糊了好久,现在我用自己理解的写出来,有错请指正。
众所周知,电脑在硬件处只能识别0和1,更进一步说电脑只能识别数字。BUT,我们接触的最多的还是字母和符号呀,那怎么让机器也识别我们想要表达的符号呢?那么字符编码应运而生,我们把字母和一些常用的符号 逐个编订一些序号,如A是65号,a是97号等等。这样,我把65号输入进入计算机,在输出的时候,机器识别出这个65号是字母A,就直接把A输出给我们看(当然整个过程没有那么简单)。这个号码与字母字符的对应关系,就是大名鼎鼎的ASCII码表了。
但是,随着中国和一些其他非英文语言的国家的崛起,大家发现26个英文字母无法表达中国的语言或者阿拉伯的语言。这就诞生了统一化的Unicode编码(当然也有其他针对各国语言的编码,如GBK),和ASCII码表异曲同工,Unicode编码也是将我们需要表达的汉字逐一编码,让机器看到编码就能知道我们是想写哪个汉字。
OK,其实说白了,你可以理解unicode编码是对ASCII编码的一种扩展,就是把一些汉字和其他语言的文字加入进来,让电脑能读懂。
好吧,总归一句,不管是ASCII还是Unicode,都是给字母或者文字一个数字,让这个数字在计算机的世界里面代表这个字母或者文字,接下来就是各种表示这个数字的方法罢了,有二进制,十进制,十六进制等等。。
如
16Unicode编码,就是规定了开头为%u,后面的十六进制数代表一个数,这个数的unicode表值对应什么就是什么。
%u2215 表示 / 。
utf-8编码。什么又是我们耳熟能详的utf-8编码呢。事情的原委是这样的,不是随着中国的强大,汉字也被编表了,让外国人也能用了吗?想想看,汉字的数量那是老美26个字母能比拟的吗?所以,如果要把汉字和其他语言文字编制入表,就必定要用很大的数来表示,落实到机器语言,就是需要很多位,很多字节来表示(最大到了6个字节)。那老美就不高兴了,我英文字母到ASCII码(unicode码)122就用完了,后面的编码都是你们汉字的,我如果用那么大的字节表示我一个英文字母,那多浪费空间和资源呀。比如表示一个a前面要带超级多个0......
于是,长度可变的utf8出现了。它用一个或几个字节表示每个字符。为通过HTTP进行传输,UTF-8编码的多字节字符以%为前缀,其后用十六进制表示每个字节。
十六进制编码
就是将字符的编码号用十六进制的方式表示出来。
如 daf 对应 646166。
虽然啰嗦,但这是我从啥也不懂的小白慢慢学习过来的历程。~
- 编码的一些问题
- 编码的一些问题
- 有关编码的一些问题
- python编码的一些问题
- 关于编码的一些问题
- JAVA编码问题的一些理解
- JAVA编码问题的一些理解
- unicode编码的一些简单问题
- Asp.net的一些编码问题
- 关于http 表单编码的一些问题。
- 关于BeautifulSoup编码的一些问题
- oracle中一些字符编码的问题
- 关于数据库编码的一些问题
- pycurl字符编码方面的一些问题
- 哈夫曼编码时遇到的一些问题
- java数据库的一些编码问题
- 关于编码遇到的一些问题
- 关于Python编码问题的一些看法
- 树上距离
- 使用HtmlAgilityPack和ScrapySharp抓取网页数据遇到的几个问题解决方法——格式编码问题
- 51nod1009 数字1的数量
- Android网络编程 HttpURLConnection,HttpClient,Asynchttpclient使用
- noip2004 FBI树
- 编码的一些问题
- 数据结构与算法目录-复习专用
- SpringMVC 文件上传下载
- SpringMVC 拦截器
- 11222
- 修改Xcode默认版本
- VMware虚拟机中的CentOS7安装Nginx后本机无法访问的解决办法
- 文件路径判断是文件还是文件夹
- 常用的DOS命令