用于处理字符和字符串的字符代码可分类为以下两组:
文件代码用于文本数据交换并存储在文件中。它有固定字节排序方法,即大尾数法字节排序,与底层系统无关。诸如 UTF-8、EUC、单字节代码集、BIG5、Shift-JIS、PCK、GBK、GB18030 等代码集均属于此类别。本节中介绍的函数上下文中的多字节字符术语是一个通用术语,指当前语言环境的代码集,尽管在某些情况下此代码集为单字节代码集。
进程代码是用于内部处理的字符的固定宽度表示形式。它使用平台的本机字节排序法,可为大尾数法字节排序,也可为小尾数法字节排序。诸如 UTF-32、UCS-2 和 UCS-4 等编码可为宽字符编码。
通常需要在多字节数据与宽字符数据之间进行转换。当一个程序从一个文件中获取输入时,进行输入后,通过使用输入函数(如 fscanf() 和 fwscanf())或转换函数(如 mbtowc() 和 mbsrtowcs())可将此文件中的多字节数据转换为宽字符进程代码。要将输出数据从宽字符格式转换为多字节字符格式,进行输出前,使用输出函数(如 fwprintf() 和 fprintf())或应用转换函数(如 wctomb() 和 wcsrtombs())。
以下各节介绍了用于处理字符、宽字符和相应数据类型的函数。