Извиняюсь за нудность вопроса, но я гонялся за своим хвостом в течение нескольких дней.
Мне нужно создать функцию, которая может проверить, является ли кодировка полученного буфера на самом деле UTF8, а затем сделатьбазовое регулярное выражение для исключения нежелательных контрольных символов.
Я начал с рекурсивного дампа:
0x62
0xCDBC
0xE0AC89
0xF09F8489
В тестовый файл.
Работал нормально, скопировал файл и текстредакторы из Windows, Linux и Mac могут читать его (и отображать правильные символы)
Но когда я пытаюсь прочитать его обратно в свою тестовую функцию, он умирает, добавляет
char c = fs->get();
while(fs->good())
{
int len = sizeof(c);
printf("0x%X --- %i\n",c,len);
c = fs->get();
}
ДаЯ знаю, что код отстой ..
, но я не понимаю, почему я получаю это на выходе.
Hex sizeof()
0x26 --- 1
0xFFFFFFCD --- 1
0xFFFFFFBC --- 1
0xFFFFFFE0 --- 1
0xFFFFFFAC --- 1
0xFFFFFF89 --- 1
0xFFFFFFF0 --- 1
0xFFFFFF9F --- 1
0xFFFFFF84 --- 1
0xFFFFFFB9 --- 1
0x62 становится 0x26, в то время как все остальные числаверны, но дополняются 64-битным шаблоном ...?
локаль EN_en.utf8
Я заблудился, есть какие-нибудь идеи?
Заранее спасибо, Боб.