URL 编码
在这几次对话中,我们讨论了多个与字符编码、URL 编码以及相关技术的主题,涵盖了以下内容:
1. HTML 文件中的字符集和浏览器解析
字符集的作用:HTML 文件中的字符集(如
UTF-8
)定义了网页内容使用的编码方式,确保浏览器能够正确解读并显示文本内容。浏览器解析过程:
- 获取字符集信息:浏览器首先从 HTTP 头或 HTML 中的
<meta charset="UTF-8">
标签获取字符集信息。 - 解析字节流:使用指定的字符集(如
UTF-8
)将接收到的字节流解码为文本字符。 - 构建 DOM 树:浏览器将解码后的字符组成 HTML 标签和内容,构建 DOM 树。
- 呈现文本:浏览器根据解码后的字符和 CSS 规则渲染页面内容。
- 获取字符集信息:浏览器首先从 HTTP 头或 HTML 中的
例子:
- HTML 文件头中指定字符集:
1
<meta charset="UTF-8">
- 浏览器使用 UTF-8 解析和显示文本。
- HTML 文件头中指定字符集:
2. Unicode 与 UTF-8 的区别
Unicode 是字符集。 UTF-8 是编码。
Unicode 是有唯一的十进制数字(代码点)的字符列表。 A = 65,B = 66,C = 67,…。
这个十进制数字列表表示字符串 “hello”:104 101 108 108 111
编码是将这些数字转换为二进制数字以存储在计算机中的方式:
UTF-8 编码将像这样(二进制)存储 “hello”:01101000 01100101 01101100 01101100 01101111
编码将数字转换为二进制。字符集将字符转换为数字。
3. 欧元符号 €
与 €
的区别
- **
€
**:直接表示欧元符号的字符,可在大多数现代编辑器和浏览器中直接使用。 - **
€
**:欧元符号的 HTML 实体编码,通常用于在 HTML 文档中确保正确显示欧元符号。 - 使用场景:
- 直接使用
€
:在现代 HTML 文件或文本中直接显示欧元符号。 - 使用
€
:在手动编写 HTML 或需要兼容性时使用。
- 直接使用
- 例子:
1
2<p>Price: €50</p>
<p>Price: €50</p>
4. 为什么需要 URL 编码
- 特殊字符的用途:某些字符(如
?
,&
,/
,=
)在 URL 中具有特殊含义,用于分隔路径、参数和键值对。为了避免这些字符被误解或误用,它们需要进行 URL 编码。 - 非 ASCII 字符的表示:URL 最初只支持 ASCII 字符,因此非 ASCII 字符(如中文字符、特殊符号等)需要进行编码,以确保它们在 URL 中可以被正确传输和解析。
- 例子:
- 原始字符串:
C++ Programming
- URL 编码后:
C%2B%2B%20Programming
- 原始字符串:
5. URL 编码的实际应用例子
- 给定原始 URL:
http://example.com/query?name=张三&name="a"&name="a&"
- 编码过程:
- 非 ASCII 字符
张三
编码为%E5%BC%A0%E4%B8%89
。 - 特殊字符
"
编码为%22
,&
编码为%26
。
- 非 ASCII 字符
- 编码后的 URL:
1
http://example.com/query?name=%E5%BC%A0%E4%B8%89&name=%22a%22&name=%22a%26%22
- 解析结果:
- 参数
name=张三
- 参数
name="a"
- 参数
name="a&"
- 参数
6. 总结
- 字符集:浏览器依赖字符集信息(如 UTF-8)来正确解析和显示网页内容。
- Unicode 与 UTF-8:Unicode 定义了字符的唯一编号,而 UTF-8 是一种将这些编号编码为字节序列的方式。
- 欧元符号表示:
€
和€
都表示欧元符号,但前者是直接字符,后者是 HTML 实体。 - URL 编码:为了正确处理特殊字符和非 ASCII 字符,确保 URL 在互联网中安全和正确地传输。
通过这些知识,您可以理解如何在 Web 开发和处理 URL、字符编码等过程中确保内容的准确性和兼容性。
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.