From d1aebd4f7b88593bdaa0847060e6e31d4df0f4e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=A4=A7=E4=BB=99?= <1900919313@qq.com> Date: Tue, 27 Aug 2024 14:44:29 +0800 Subject: [PATCH] c --- docs/notes/01_c-basic/03_xdx/assets/53.png | Bin 0 -> 72986 bytes docs/notes/01_c-basic/03_xdx/index.md | 238 ++++++++++++++++++++- 2 files changed, 236 insertions(+), 2 deletions(-) create mode 100644 docs/notes/01_c-basic/03_xdx/assets/53.png diff --git a/docs/notes/01_c-basic/03_xdx/assets/53.png b/docs/notes/01_c-basic/03_xdx/assets/53.png new file mode 100644 index 0000000000000000000000000000000000000000..0d500806db91d72a4256ab915c5ffcd7dcf89779 GIT binary patch literal 72986 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

i|r=gn6j1xF5v%QURL-8`pDy~!MN=a*UF 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 literal 0 HcmV?d00001 diff --git a/docs/notes/01_c-basic/03_xdx/index.md b/docs/notes/01_c-basic/03_xdx/index.md index 1c88cec..08d4d82 100644 --- a/docs/notes/01_c-basic/03_xdx/index.md +++ b/docs/notes/01_c-basic/03_xdx/index.md @@ -2439,8 +2439,13 @@ man ascii > * UTF-16 可以看做是 UTF-8 和 UTF-32 的折中方案,它平衡了存储空间和处理效率的矛盾。对于常用的字符,用两个字节存储足以,这个时候 UTF-16 是不需要转换的,直接存储字符的编码值即可。 > * ② 总而言之,**UTF-8** 编码兼容性强,适合大多数应用,特别是英文文本处理。**UTF-16** 编码适合处理大量亚洲字符,但在处理英文或其他拉丁字符时相对浪费空间。**UTF-32**编码简单直接,但非常浪费空间,适合需要固定字符宽度的特殊场景。 > * ③ 在实际应用中,UTF-8 通常是最常用的编码方式,因为它在兼容性和空间效率之间提供了良好的平衡。 -> * ④ Windows 内核、.NET Framework、Java String 内部采用的都是 `UTF-16` 编码,主要原因是为了在兼顾字符处理效率的同时,能够有效处理多种语言的字符集,即:历史遗留问题、兼容性要求和多语言支持的需要。 -> * ⑤ 不过,UNIX 家族的操作系统(Linux、Mac OS、iOS 等)内核都采用 `UTF-8` 编码,主要是为了兼容性和灵活性,因为 UTF-8 编码可以无缝处理 ASCII 字符,同时也能够支持多字节的 Unicode 字符,即:为了最大限度地兼容 ASCII,同时保持系统的简单性、灵活性和效率。 + +> [!IMPORTANT] +> +> * ① Windows 内核、.NET Framework、Java String 内部采用的都是 `UTF-16` 编码,主要原因是为了在兼顾字符处理效率的同时,能够有效处理多种语言的字符集,即:历史遗留问题、兼容性要求和多语言支持的需要。 +> * ② 不过,UNIX 家族的操作系统(Linux、Mac OS、iOS 等)内核都采用 `UTF-8` 编码,主要是为了兼容性和灵活性,因为 UTF-8 编码可以无缝处理 ASCII 字符,同时也能够支持多字节的 Unicode 字符,即:为了最大限度地兼容 ASCII,同时保持系统的简单性、灵活性和效率。 + + - `Unicode 字符集`和对应的`UTF-8 字符编码`之间的关系,如下所示: @@ -2535,3 +2540,232 @@ source /etc/default/locale ``` ![](./assets/52.gif) + +## 3.3 在 C 语言中使用中文字符 + +### 3.3.1 概述 + +* 大部分 C 语言文章或教材对中文字符的处理讳莫如深,甚至只字不提,导致很多初学者认为 C 语言只能处理英文,而不支持中文。 +* 其实,这是不对的。C 语言作为一门系统级别的编程语言,理应支持世界上任何一个国家的文字,如:中文、日文、韩文等。 + +> [!NOTE] +> +> 如果 C 语言不支持中文,那么简体中文 Windows 操作系统将无从谈起,我们只能被迫使用英文 Windows 操作系统,这对计算机的传播而言将会是一种巨大的阻碍。 + +### 3.3.2 中文字符的存储 + +* 要想正确的存储中文字符,需要解决如下的两个问题: + * ① 足够长的数据类型:char 的长度是 1 个字节,只能存储拉丁体系的问题,并不能存储中文字符,所以至少需要 2 个字节的内存空间。 + * ② 包含中文的字符集:C 语言规定,对于中文、日文、韩文等非 ASCII 编码之外的单个字符,需要有专门的字符类型,也就是需要使用宽字符的编码方式。而常见的宽字符的编码有 UTF-16 和 UTF-32,它们都是基于 Unicode 字符集的,都能够支持全球的文字。 + +> [!NOTE] +> +> 上文提及过,在现代编程中,`窄字符`通常与 `UTF-8` 编码关联,特别是在处理文本输入、输出和网络传输时。尽管 `UTF-8` 是变长编码,由于其高效的空间利用和对 `ASCII` 的优化,通常与`窄字符`概念关联。而`宽字符`通常与 `UTF-16` 编码或 `UTF-32`编码关联,这些编码使用更大的固定或半固定长度来表示字符,适合处理更大的字符集。 + +* 在真正实现的时候,微软的 MSVC 编译器采用 UTF-16 编码,即:使用 2 个字节来存储一个字符,使用 unsigned short 类型就可以容纳。而 GCC、LLVM/Clang 采用 UTF-32 编码,使用 4 个字节存储字符,用 unsigned int 类型就可以容纳。 + +> [!NOTE] +> +> 不同的编译器可以使用不同的整数类型,来存储宽字符,这对于跨平台开发来说,非常不友好。 + +* 为了解决上述的问题,C 语言推出了一种全新的类型 `wchar_t` 类型,用来存储宽字符类型。 + * 在微软的 MSVC 编译器中,它的长度是 2 个字节。 + * 在 GCC、LLVM/Clang 中,它的长度是 4 个字节。 + +> [!NOTE] +> +> * ① `wchar_t` 中的 `w`是 wide 的首字母,`t` 是 type 的首字母,所以 `wchar_t` 就是宽字符类型,足够见名知意。 +> * ② `wchar_t` 是用 typedef 关键字定义的一个别名,后文讲解,`wchar_t` 在不同的编译器下长度不一样。 +> * ③ `wchar_t` 类型位于 `` 头文件中,它使得代码在具有良好移植性的同时,也节省了不少内存,以后我们就用它来存储宽字符。 + +* 对于普通的拉丁体系的字符,我们使用 `''` 括起来,来表示字符,如:`'A'`、`'&'` 等。但是,如果要想表示宽字符,就需要加上 `L` 前缀了,如:`L'A'`、`L'中'`。 + +> [!NOTE] +> +> 宽字符字面量中的 `L` 是 `Long` 的缩写,意思是比普通的字符(char)要长。 + + + +* 示例: + +```c +#include + +int main() { + + /* 存储宽字符,如:中文 */ + wchar_t a = L'中'; + wchar_t b = L'中'; + wchar_t c = L'中'; + wchar_t d = L'中'; + wchar_t e = L'中'; + + return 0; +} +``` + +### 3.3.3 中文字符的输出 + +* 对于宽字符,就不能使用 `putchar` 函数和 `printf` 函数来进行输出了,需要使用 `putwchar` 函数和 `wprintf` 函数。 + +> [!NOTE] +> +> * ① `putchar` 函数和 `printf` 函数,只能输出窄字符,即:`char` 类型表示的字符。 +> * ② `putwchar` 函数可以用来输出宽字符,用法和 `putchar` 函数类似。 +> * ③ `wprintf`函数可以用来输出宽字符,用法和 `printf` 函数类型,只不过格式占位符是 `%lc` 。 +> * ④ 在输出宽字符之前,还需要使用 `setlocale` 函数进行本地化设置,告诉程序如何才能正确地处理各个国家的语言文化。 + + + +* 示例: + +```c +#include +#include +#include + +int main() { + + /* 存储宽字符,如:中文 */ + wchar_t a = L'中'; + wchar_t b = L'国'; + wchar_t c = L'人'; + wchar_t d = L'你'; + wchar_t e = L'好'; + + // 将本地环境设置为简体中文 + setlocale(LC_ALL, "zh_CN.UTF-8"); + + // 使用专门的 putwchar 输出宽字符 + putwchar(a); + putwchar(b); + putwchar(c); + putwchar(d); + putwchar(e); + putwchar(L'\n'); // 只能使用宽字符 + + // 使用通用的 wprintf 输出宽字符 + wprintf(L"%lc %lc %lc %lc %lc\n", a, b, c, d, e); + + return 0; +} +``` + +### 3.3.4 宽字符串 + +* 如果给字符串加上 `L` 前缀,就变成了宽字符串,即:它包含的每个字符都是宽字符,一律采用 UTF-16 或者 UTF-32 编码。 + +> [!NOTE] +> +> * ① 输出宽字符串可以使用 头文件中的 wprintf 函数,对应的格式控制符是`%ls`。 +> * ② 不加`L`前缀的窄字符串也可以处理中文,我们之前就在 `printf` 函数中,使用格式占位符 `%s` 输出含有中文的字符串,至于为什么,看下文讲解。 + + + +* 示例: + +```c +#include +#include +#include + +int main() { + + /* 存储宽字符,如:中文 */ + wchar_t a[] = L"中国人"; + wchar_t *b = L"你好"; + + // 将本地环境设置为简体中文 + setlocale(LC_ALL, "zh_CN.UTF-8"); + + // 使用通用的 wprintf 输出字符串 + wprintf(L"%ls %ls\n", a, b); + + return 0; +} +``` + +## 3.4 C 语言到底使用什么编码? + +### 3.4.1 概述 + +* 在 C 语言中,只有 `char` 类型的`窄字符`才会使用 ASCII 编码。而 `char` 类型的`窄字符串`、`wchar_t` 类型的`宽字符`和`宽字符串`都不使用 ASCII 编码。 +* `wchar_t` 类型的`宽字符`和`宽字符串`使用 UTF-16 或者 UTF-32 编码,这个在上文已经讲解了,现在只剩下 `char` 类型的`窄字符串`没有讲解了,这也是下文的重点。 + +> [!NOTE] +> +> * ① 其实,对于`char` 类型的窄字符串,C 语言并没有规定使用哪一种特定的编码,只要选用的编码能够适应当前的环境即可。换言之,`char` 类型的窄字符串的编码与操作系统以及编译器有关。 +> * ② 但是,`char` 类型的窄字符串一定不是 ASCII 编码,因为 ASCII 编码只能显示拉丁体系的文字,而不能输出中文、日文、韩文等。 +> * ③ 讨论窄字符串的编码要从以下两个方面下手。 + +### 3.4.2 源文件使用什么编码? + +* 源文件用来保存我们编写的代码,它最终会被存储到本地硬盘,或者远程服务器,这个时候就要尽量压缩文件体积,以节省硬盘空间或者网络流量,而代码中大部分的字符都是 ASCII 编码中的字符,用一个字节足以容纳,所以 UTF-8 编码是一个不错的选择。 +* UTF-8 兼容 ASCII,代码中的大部分字符可以用一个字节保存。另外,UTF-8 基于 Unicode,支持全世界的字符,我们编写的代码可以给全球的程序员使用,真正做到技术无国界。 +* 常见的 IDE 或者编辑器,如:Sublime Text、Vim 等,在创建源文件的时候一般默认就是 UTF-8 编码。就算不是,我们也会推荐设置为 UTF-8 编码,如下所示: + +![](./assets/53.png) + +* 对于 C 语言编译器来说,它往往支持多种编码格式的源文件。微软的 MSVC 、GCC 和 LLVM/Clang 都支持 UTF-8 和本地编码的源文件。 + +### 3.4.3 窄字符串使用什么编码? + +* 前文提到,可以使用 puts 函数或 printf 函数来输出窄字符串,如下所示: + +```c +#include + +int main() { + + // 存储字符串 + char str[] = "我"; + char *str2 = "爱你"; + + puts(str); // 我 + puts(str2); // 爱你 + + // 存储字符串 + char str3[] = "你"; + char *str4 = "是好人"; + + printf("%s\n", str3); // 你 + printf("%s\n", str4); // 是好人 + + return 0; +} +``` + +* 像 `"我"`、`"爱你"`、`"你"`、`"是好人"`就是需要被处理的窄字符串,当程序运行的时候,它们会被加载进内存。并且,这些字符串中是包含中文的,所以一定不会使用 ASCII 编码。 +* 其实,对于代码中需要被处理的窄字符串,不同的编译器差别还是挺大的: + * 微软的 MSVC 编译器使用本地编码来保存这些字符。对于简体中文版的 Windows,使用的是 GBK 编码。 + * GCC、LLVM/Clang 编译器使用和源文件相同的编码来保存这些字符:如果源文件使用的是 UTF-8 编码,那么这些字符也使用 UTF-8 编码;如果源文件使用的是 GBK 编码,那么这些字符也使用 GBK 编码。 + +### 3.3.4 总结 + +* ① 对于 `char` 类型的窄字符,在 C 语言中,使用的是 `ASCII` 编码。 +* ② 对于 `wchar_t` 类型的`宽字符`和`宽字符串`,在 C 语言中,使用的 `UTF-16` 编码或者 `UTF-32` 编码,它们都是基于 Unicode 字符集的。 +* ③ 对于 `char` 类型的`窄字符串`,微软的 MSVC 编译器使用本地编码,GCC、LLVM/Clang 使用和源文件编码相同的编码。 +* ④ 处理窄字符和处理宽字符使用的函数也不一样,如下所示: + * `` 头文件中的 `putchar`、`puts`、`printf` 函数只能用来处理窄字符。 + * `` 头文件中的 `putwchar`、`wprintf` 函数只能用来处理宽字符。 + +> [!IMPORTANT] +> +> * ① C 语言作为一门较为底层和古老的语言,对于字符的处理,之所以有这么多种方式,是因为历史遗留的原因和早期计算机资源有限的背景密切相关。 +> * ② 现代化的编程语言,如:C++ 、Java、Python 等都对字符串处理进行了改进和抽象,如:C++ 中的 `std::string` 和 Java 中的 `String`。并且,现代编程语言的字符串类型通常会自动管理内存,这样开发者就不需要手动处理字符串的内存分配和释放,从而减少了内存泄漏和缓冲区溢出等问题。当然,现代编程语言通常内置了对各种字符编码的支持,能够方便地处理不同语言的字符,如:Java 的 `String` 类和 Python 的 `str` 类型都默认支持 Unicode,可以轻松处理中文等多字节字符。 + +### 3.3.5 编码字符集和运行字符集 + +* 源文件使用的字符集,通常称为`编码字符集`,即:写代码的时候所使用的字符集。 + +> [!NOTE] +> +> 源文件需要保存到硬盘,或者在网络上传输,使用的编码要尽量节省存储空间,同时要方便跨国交流,所以一般使用 UTF-8,这就是选择编码字符集的标准。 + +* 程序中的字符或者字符串使用的字符集,通常称为`运行字符集`,即:程序运行时所使用的字符集。 + +> [!NOTE] +> +> 程序中的字符或者字符串,在程序运行后必须被载入到内存,才能进行后续的处理,对于这些字符来说,要尽量选用能够提高处理速度的编码,如:UTF-16 和 UTF-32 编码就能够快速定位(查找)字符。 + +* 编码字符集是站在存储和传输的角度,而运行字符集是站在处理或者操作的角度,所以它们并不一定相同。