3现在已经没有人再使用ASCII编码(或者更确切地说是:不应该再使用ASCII编码),UTF-8已成为首选编码方式(如果不是占据主导地位),而UTF-8和UTF-16都是多字节编码系统。需要注意的是,UTF-16对大小端序敏感,但UTF-8则不敏感(这是因为UTF-16需要解决从UCS-2继承来的设计错误所致的历史遗留问题)。 - Dai
1@P__J__ 我使用术语“多字节编码”来描述UTF-8可能需要多达4个字节(即多个字节)来表示一个单一代码点的事实。你更喜欢我使用术语“可变字节长度编码”吗? - Dai
他正在询问关于C字符串的问题。在C语言中没有多字节字符。 - 0___________
1@P__J__ 我理解原帖问题中对C字符串的提及只是作为一个例子,而不仅仅是关于C语言的问题。 - Dai
2@P__J__,即使已经过时的C11也承认多字节字符的存在以及它们可能出现在普通的C字符串中。规范并没有强制要求任何特定的细节,但显然C语言在这个意义上有多字节字符。还不算C11中的UTF-8字符串字面量、宽字符和字符串,或者多字节整数字符常量。我不认为“C语言中没有多字节字符”是一个站得住脚的观点。 - John Bollinger
int16_t
或uint16_t
C类型)。而且,16位类型对字节序敏感。 - Serge Ballesta