我正在解析一个包含æ、ø和å等字符的文件。如果我们假设我已将文本文件的一行存储如下:
#define MAXLINESIZE 1024
char* buffer = malloc(MAXLINESIZE)
...
fgets(buffer,MAXLINESIZE,handle)
...
如果我想要计算一行上的字符数量。如果我尝试以下操作:
char* p = buffer
int count = 0;
while (*p != '\n') {
if (isgraph(*p)) {
count++;
}
p++;
}
这会忽略任何出现的æøå
例如:计算“aåeæioøu”,应返回5而不是8
我需要以另一种方式读取文件吗?我不应该使用char*
而应该使用int*
吗?
C3 A5
编码,也可能被编码为a后跟˚,即61 CB 9A
。这两种形式分别称为组合和分解Unicode。 - JeremyP