Существует ли стандартная функция posix C для преобразования кодировок, скажем, из windows-1251 в utf-8 и обратно?
Да, это iconv().
iconv()
Ссылки: