16位字节的ASCII文件编码

问题描述 投票:0回答:1

根据C标准,一个字节可以有8位以上。由于 ASCII 字符占用 8 位(技术上为 7 位),因此 ASCII(或 UTF-8)文件如何在具有 16 位字节的系统上进行编码?每个字符占用16位,还是两个字符串联成一个字节?

例如,给出以下代码:

char character;
FILE* file = fopen("file.txt", "r");
fread(&character, 1, 1, file);

如果文件是 ASCII 编码的并包含文本

ab
,则
character
是否包含
'a'
'a'
'b'
的某种串联?

c file serialization utf-8 ascii
1个回答
0
投票

仅仅因为某些奇怪的系统有 16 位字节,这并不会改变 ASCII/UTF8 的定义。因此,他们要么必须用零填充多余的位,要么可能使用 16 位符号表(以防有意义)。在一个 16 位变量中存储两个值听起来很成问题。

大多数此类系统都是 DSP 等,因此在大多数情况下,用户界面可能不会太多,在这种情况下也不需要字符串处理。

© www.soinside.com 2019 - 2024. All rights reserved.