Существует файл csv, который имеет множество разных языков, закодированных в utf-8. Мне нужно проанализировать файл и проверить недопустимые символы. Я написал пример программы ниже, как показано ...Сравнение кодированных символов UTF8
int main(void)
{
string invalidUTF8Chars = ""; // Invalid UTF-8 Chars array.
invalidUTF8Chars+= "\u00A0";
invalidUTF8Chars+= "\u005E";
invalidUTF8Chars+= "\u00FE";
invalidUTF8Chars+= "\u00BA";
invalidUTF8Chars+= "\u00AF";
FILE* fp;
char ch;
fp = fopen("unicodeUTF8TextFile.txt","r");
if(fp != NULL)
{
while((ch = fgetc(fp)) != EOF) // Reading byte by byte form input file.
{
//if (strchr(invalidUTF8Chars.c_str(), ch)) // How do I validate here?
{
printf("Invalid character\n");
}
}
}
return 0;
}
Как сравнить данные, считанные из файла против неверных символов?
'полукокса ч; 'является массовой ошибкой; предварительно изучите API, прежде чем продолжить. –
'string invalidUTF8Chars =" ";' не является массивом. это всего лишь строка, содержащая все ваши недопустимые «символы». – user1810087
Ваши литералы должны иметь форму 'u8" \ u00A0 "и т. Д., Если вы действительно хотите UTF-8. Ваш текущий код не использует UTF-8, а скорее узкое кодирование системы (которое может быть или не быть одинаковым). –