From cef4d6a67be3bed917850b0559eb1edb51963cff Mon Sep 17 00:00:00 2001 From: Guide Date: Mon, 8 Jan 2024 23:00:42 +0800 Subject: [PATCH] =?UTF-8?q?[docs=20update]=E5=AE=8C=E5=96=84=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E9=9B=86=E8=AF=A6=E8=A7=A3=E9=83=A8=E5=88=86=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../high-quality-technical-articles.ts | 1 + docs/database/character-set.md | 22 ++++++++++++------- .../high-quality-technical-articles/readme.md | 1 + 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/docs/.vuepress/sidebar/high-quality-technical-articles.ts b/docs/.vuepress/sidebar/high-quality-technical-articles.ts index 69f09754..c158bd99 100644 --- a/docs/.vuepress/sidebar/high-quality-technical-articles.ts +++ b/docs/.vuepress/sidebar/high-quality-technical-articles.ts @@ -10,6 +10,7 @@ export const highQualityTechnicalArticles = arraySidebar([ "programmer-quickly-learn-new-technology", "the-growth-strategy-of-the-technological-giant", "ten-years-of-dachang-growth-road", + "meituan-three-year-summary-lesson-10", "seven-tips-for-becoming-an-advanced-programmer", "20-bad-habits-of-bad-programmers", "thinking-about-technology-and-business-after-five-years-of-work", diff --git a/docs/database/character-set.md b/docs/database/character-set.md index 3c2d008d..e462a5c9 100644 --- a/docs/database/character-set.md +++ b/docs/database/character-set.md @@ -11,7 +11,7 @@ MySQL 字符编码集中有两套 UTF-8 编码实现:**`utf8`** 和 **`utf8mb4 为什么会这样呢?这篇文章可以从源头给你解答。 -## 何为字符集? +## 字符集是什么? 字符是各种文字和符号的统称,包括各个国家文字、标点符号、表情、数字等等。 **字符集** 就是一系列字符的集合。字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表示汉字的。 @@ -19,9 +19,15 @@ MySQL 字符编码集中有两套 UTF-8 编码实现:**`utf8`** 和 **`utf8mb4 我们要将这些字符和二进制的数据一一对应起来,比如说字符“a”对应“01100001”,反之,“01100001”对应 “a”。我们将字符对应二进制数据的过程称为"**字符编码**",反之,二进制数据解析成字符的过程称为“**字符解码**”。 +## 字符编码是什么? + +字符编码是一种将字符集中的字符与计算机中的二进制数据相互转换的方法,可以看作是一种映射规则。也就是说,字符编码的目的是为了让计算机能够存储和传输各种文字信息。 + +每种字符集都有自己的字符编码规则,常用的字符集编码规则有 ASCII 编码、 GB2312 编码、GBK 编码、GB18030 编码、Big5 编码、UTF-8 编码、UTF-16 编码等。 + ## 有哪些常见的字符集? -常见的字符集有 ASCII、GB2312、GBK、UTF-8……。 +常见的字符集有:ASCII、GB2312、GB18030、GBK、Unicode……。 不同的字符集的主要区别在于: @@ -64,7 +70,7 @@ GB18030 完全兼容 GB2312 和 GBK 字符集,纳入中国国内少数民族 BIG5 主要针对的是繁体中文,收录了 13000 多个汉字。 -### Unicode & UTF-8 编码 +### Unicode & UTF-8 为了更加适合本国语言,诞生了很多种字符集。 @@ -100,7 +106,7 @@ UTF-32 的规则最简单,不过缺陷也比较明显,对于英文字母这 ## MySQL 字符集 -MySQL 支持很多种字符编码的方式,比如 UTF-8、GB2312、GBK、BIG5。 +MySQL 支持很多种字符集的方式,比如 GB2312、GBK、BIG5、多种 Unicode 字符集(UTF-8 编码、UTF-16 编码、UCS-2 编码、UTF-32 编码等等)。 ### 查看支持的字符集 @@ -252,13 +258,13 @@ set names utf8mb4 # SET collation_connection = utf8mb4; ``` -### jdbc 对连接字符集的影响 +### JDBC 对连接字符集的影响 -不知道你们有没有碰到过存储 emoji 表情正常,但是使用类似 Navicat 之类的软件的进行查询的时候,发现 emoji 表情变成了问号的情况。这个问题很有可能就是 jdbc 驱动引起的。 +不知道你们有没有碰到过存储 emoji 表情正常,但是使用类似 Navicat 之类的软件的进行查询的时候,发现 emoji 表情变成了问号的情况。这个问题很有可能就是 JDBC 驱动引起的。 -根据前面的内容,我们知道连接字符集也是会影响我们存储的数据的,而 jdbc 驱动会影响连接字符集。 +根据前面的内容,我们知道连接字符集也是会影响我们存储的数据的,而 JDBC 驱动会影响连接字符集。 -`mysql-connector-java` (jdbc 驱动)主要通过这几个属性影响连接字符集: +`mysql-connector-java` (JDBC 驱动)主要通过这几个属性影响连接字符集: - `characterEncoding` - `characterSetResults` diff --git a/docs/high-quality-technical-articles/readme.md b/docs/high-quality-technical-articles/readme.md index 2ec9d70a..544d6de3 100644 --- a/docs/high-quality-technical-articles/readme.md +++ b/docs/high-quality-technical-articles/readme.md @@ -9,6 +9,7 @@ - [程序员如何快速学习新技术](./advanced-programmer/programmer-quickly-learn-new-technology.md) - [程序员的技术成长战略](./advanced-programmer/the-growth-strategy-of-the-technological-giant.md) - [十年大厂成长之路](./advanced-programmer/ten-years-of-dachang-growth-road.md) +- [美团三年,总结的 10 条血泪教训](./advanced-programmer/meituan-three-year-summary-lesson-10.md) - [给想成长为高级别开发同学的七条建议](./advanced-programmer/seven-tips-for-becoming-an-advanced-programmer.md) - [糟糕程序员的 20 个坏习惯](./advanced-programmer/20-bad-habits-of-bad-programmers.md) - [工作五年之后,对技术和业务的思考](./advanced-programmer/thinking-about-technology-and-business-after-five-years-of-work.md)