Es gibt eine CSV-Datei, die die vielen verschiedenen Sprachen in utf-8 codiert hat. Ich muss die Datei analysieren und auf ungültige Zeichen überprüfen. Ich habe ein Beispielprogramm, das unten geschrieben wird, wie gezeigt ...Vergleicht UTF8-codierte Zeichen
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;
}
Wie vergleiche ich die aus der Datei gegen die ungültige Zeichen lesen Daten?
'char ch; 'ist ein großer Fehler; Bitte lesen Sie die API sorgfältig, bevor Sie fortfahren. –
'string invalidUTF8Chars =" ";' ist kein Array. Es ist nur eine Zeichenfolge, die alle ungültigen "Zeichen" enthält. – user1810087
Ihre Literale sollten die Form 'u8 "\ u00A0" 'usw. haben, wenn Sie eigentlich UTF-8 wollen. Ihr aktueller Code verwendet nicht UTF-8, sondern die Encodierung des Systems (die identisch oder nicht identisch sein kann). –