美文网首页
现代 C 字符串编码

现代 C 字符串编码

作者: Platanuses | 来源:发表于2023-01-03 00:40 被阅读0次

本文更新至 C23。

字符类型

  • signed char:有符号 8 位字符类型。
  • unsigned char:无符号 8 位字符类型。通常也用作底层内存结构的 byte 表达。
  • char:8 位字符类型。与 int 类型族的常规不同,charsigned char 是不同的类型。与 signed charunsigned char 性质相同。
  • wchar_t:位宽足以表示任何宽字符的字符类型。通常为 16 位无符号整型。
  • char8_t:(C23 起)8 位无符号字符类型。表示一个 UTF-8 的编码。
  • char16_t:(C11 起)16 位无符号字符类型。
  • char32_t:(C11 起)32 位无符号字符类型。

与 C++ 不同, wchar_tchar8_tchar16_tchar32_t 不是关键字,而通常是 typedef。

字符串类型

字符串字面量可使用以下前缀:

  • L:通常是 UTF-16 编码,字符类型为 wchar_t。如 L"是我"(wchar_t[]){ 0x662f, 0x6211, 0 }
  • u8:(C11 起)UTF-8 字符串,字符类型为 char,或 C23 起 char8_t。如 u8"是我"(char8_t[]){ 0xe6, 0x98, 0xaf, 0xe6, 0x88, 0x91, 0 }
  • u:(C11 起)16 位宽字符串,通常(或 C23 起必然)是 UTF-16 编码,字符类型为 char16_t。如 u"是我"(char16_t[]){ 0x662f, 0x6211, 0 }
  • U:(C11 起)32 位宽字符串,通常(或 C23 起必然)是 UTF-32 编码,字符类型为 char32_t。如 U"是我"(char32_t[]){ 0x0000662f, 0x00006211, 0 }

相关文章

  • 现代 C 字符串编码

    本文更新至 C23。 字符类型 signed char:有符号 8 位字符类型。 unsigned char:无符...

  • 现代 C++ 字符串编码

    本文更新至 C++20。 字符类型 signed char:有符号 8 位字符类型。 unsigned char:...

  • 江南小碧的C#教程:3、数据类型与字符串编码

    数据类型 无脑贴代码,展示一些常见的数据类型: 输出: 字符串编码 C#默认使用Unicode编码。把字符串编码成...

  • C/C++ 字符串的编码

    C/C++ 字符串的编码 字符串的编码需从两个方面考虑1. 在源文件中存储时的编码2. 在内存(运行时)和可执行文...

  • 哈夫曼树

    哈夫曼编码,又称霍夫曼编码,它是现代压缩方法的基础 假设要把字符串[ABBBCCCCCCCCDDDDDDEE]转成...

  • iOS Emoji编解码(OBJ-C/Swift)

    编码EMOJI表情字符串OBJ-C:扩展NSString Swift: 解码EMOJI表情字符串OBJ-C扩展NS...

  • 二十五、哈夫曼树

    哈夫曼编码(Huffman Coding) 哈夫曼编码,又称为霍夫曼编码,它是现代压缩算法的基础 假设要把字符串【...

  • 18_哈夫曼树

    哈夫曼编码的用途 哈夫曼编码,又称霍夫曼编码,它是现代压缩算法的基础 假设要把字符串【ABBBBCCCCCCCCD...

  • 字符串类常用操作方法

    一、不可变字符串(NSString) // 在C语言中,使用ASCII编码的字符作为字符串,并且C语言中,并没有...

  • iOS字符串常用方法

    一、不可变字符串(NSString) //在C语言中,使用ASCII编码的字符作为字符串,并且C语言中,并没有专门...

网友评论

      本文标题:现代 C 字符串编码

      本文链接:https://www.haomeiwen.com/subject/yogkcdtx.html