空终止多字节字符串

来自cppreference.com
< c‎ | string

空终止多字节字符串(NTMBS),或称“多字节字符串”,是跟随零值字节(空终止字符)的一串非零字节。

每个存储于字符串中的字符可能占用多于一个字节。在多字节字符串中,用于表示字符的编码是本地环境限定的:它可以是UTF-8、 GB18030、 EUC-JP、 Shift-JIS等等。例如,字符数组{'\xe4','\xbd','\xa0','\xe5','\xa5','\xbd','\0'}是一个以UTF-8多字节编码表示字符串"你好"的NTMBS:前三字节编码字符“你”,后三字节编码字符“好”。用GB18020编码的相同字符串是字符数组{'\xc4', '\xe3', '\xba', '\xc3', '\0'},其中两个字符都编码成双字符序列。

一些多字节字符串中,任何给定的多字节字符序列可能会表根据前置的字节序列表示不同的字符,是为“迁移序列”。此类编码是依赖状态的:需要当前迁移状态的知识来转译每一个字符。若起始和终止为初始迁移状态,NTMBS才是合法的:若使用迁移序列,则必须在空终止字符前表示对应的未迁移序列。这类编码的例子是BOCU-1和SCSU。

多字节字符串是与空终止字节字符串(NTBS)表示兼容的,即是说,可以使用同样的工具存储、复制和检验,除了计算字符数的情况。若正确的本地环境正在发挥作用,则输入/输出函数亦可控制多字节字符串。运用下列依赖本地环境的函数,多字节字符串可以与宽字符串相互转换:

目录

[编辑] 多字节/宽字符转换

定义于头文件 <stdlib.h>
在未来的多字节字符,返回的字节数
原文:
returns the number of bytes in the next multibyte character
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
未来的多字节字符转换为宽字符
原文:
converts the next multibyte character to wide character
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
一个宽字符转换成多字节表示
原文:
converts a wide character to its multibyte representation
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
多字节字符串转换成一个狭窄的宽字符串
原文:
converts a narrow multibyte character string to wide string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
缩小的多字节字符串转换成宽字符串
原文:
converts a wide string to narrow multibyte character string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
定义于头文件 <wchar.h>
检查如果的mbstate_t对象初始移位状态
原文:
checks if the mbstate_t object represents initial shift state
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
扩大一个窄字符的单字节宽字符,如果可能的话
原文:
widens a single-byte narrow character to wide character, if possible
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
缩小了宽到窄字符的单字节字符,如果可能的话
原文:
narrows a wide character to a single-byte narrow character, if possible
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
在给定的状态下的多字节字符,返回的字节数
原文:
returns the number of bytes in the next multibyte character, given state
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
下的多字节字符转换为宽字符,给定的状态中
原文:
converts the next multibyte character to wide character, given state
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
一个宽字符转换为多字节表示,给定的状态
原文:
converts a wide character to its multibyte representation, given state
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
将一个狭窄的多字节字符的字符串,宽字符串,给定的状态
原文:
converts a narrow multibyte character string to wide string, given state
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
宽字符串转换成窄的多字节字符串,给定的状态
原文:
converts a wide string to narrow multibyte character string, given state
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
定义于头文件 <uchar.h>
产生下一个16位宽的字符从一个狭窄的多字节字符串
原文:
generate the next 16-bit wide character from a narrow multibyte string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
一个16位的宽字符转换成多字节字符串缩小
原文:
convert a 16-bit wide character to narrow multibyte string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
产生下一个32位宽从一个狭窄的多字节字符串的字符
原文:
generate the next 32-bit wide character from a narrow multibyte string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]
一个32位的宽字符转换成多字节字符串缩小
原文:
convert a 32-bit wide character to narrow multibyte string
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(函数) [edit]

[编辑] 类型

定义于头文件 <wchar.h>
迭代多字节字符串转换所需的状态信息
原文:
conversion state information necessary to iterate multibyte character strings
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(类) [edit]
定义于头文件 <uchar.h>
char16_t
(C11)
16-bit character type
(类型定义)
char32_t
(C11)
32-bit character type
(类型定义)

[编辑]

定义于头文件 <limits.h>
MB_LEN_MAX
多字节字符的最大字节数
原文:
maximum number of bytes in a multibyte character
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里

(宏常量) [edit]
定义于头文件 <stdlib.h>
MB_CUR_MAX
在当前的Clocale
(宏变量)多字节字符的最大字节数
原文:
maximum number of bytes in a multibyte character in the current C locale
(宏变量)
这段文字是通过 Google Translate 自动翻译生成的。
您可以帮助我们检查、纠正翻译中的错误。详情请点击这里
[edit]
定义于头文件 <uchar.h>
__STDC_UTF_16__
(C11)
指示UTF-16编码为mbrtoc16c16rtomb所用
(宏常量)
__STDC_UTF_32__
(C11)
指示UTF-32编码为mbrtoc32c32rtomb所用
(宏常量)

[编辑] 参考

  • C11 standard (ISO/IEC 9899:2011):
  • 7.10 Sizes of integer types <limits.h> (p: 222)
  • 7.22 General utilities <stdlib.h> (p: 340-360)
  • 7.28 Unicode utilities <uchar.h> (p: 398-401)
  • 7.29 Extended multibyte and wide character utilities <wchar.h> (p: 402-446)
  • 7.31.12 General utilities <stdlib.h> (p: 456)
  • 7.31.16 Extended multibyte and wide character utilities <wchar.h> (p: 456)
  • K.3.6 General utilities <stdlib.h> (p: 604-614)
  • K.3.9 Extended multibyte and wide character utilities <wchar.h> (p: 627-651)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.10 Sizes of integer types <limits.h> (p: 203)
  • 7.20 General utilities <stdlib.h> (p: 306-324)
  • 7.24 Extended multibyte and wide character utilities <wchar.h> (p: 348-392)
  • 7.26.10 General utilities <stdlib.h> (p: 402)
  • 7.26.12 Extended multibyte and wide character utilities <wchar.h> (p: 402)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.1.4 Limits <float.h> and <limits.h>
  • 4.10 GENERAL UTILITIES <stdlib.h>
  • 4.13.7 General utilities <stdlib.h>

[编辑] 参阅

空终止多字节字符串C++文档