Раньше всегда программировал в кодировке koi8-r и не сталкивался с подобным.
В общем проблема в следующем. Есть некий код в кодировке koi8:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char s[20], str[20];
strcpy(s,"Привет");
sprintf(str,"strlen='%d'\n",strlen(s));
printf(str);
return 0;
}
Вывод вполне логичный и правильный.
strlen='6'
Но стоит только перевести этот код в кодировку utf8 (с помощью всем известной утилиты iconv), то вывод:
strlen='12'
Мне хотелось бы услышать рекомендаци по тому как именно программировать, что бы таких ситуаций не возникало. Просто приходится часто менять локаль (то koi8-r, то utf8), как это учитывать или как это избежать? Или придется писать в koi8-r?
PS не ругайте, если что ) просто я немного ошеломлен )