Depois de muito procurar na intenert e de tentativas anteriores frustadas, consegui um conversor de UTF8 para CHAR (ASCII) do C. A idéia era transformar "ÁÀÃÂ" para "AAAA".
Depois de encontrar um site que especifica quais os códigos do UTF8 (http://titus.uni-frankfurt.de/unicode/inx/titu0000.htm) fiz uma função que faz a conversão que eu me referi:
void volta_uma_casa(char *s,int pos){
int i;
int tam=strlen(s);
for(i=pos;i<tam;i++){
s[i]=s[i+1];
}
}
void utf8_para_ascii(char *s){
//inspirado em: http://titus.uni-frankfurt.de/unicode/inx/titu0000.htm
/* string de teste
"! \" # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ"
*/
unsigned char c,c2;
int i;
int tam=strlen(s);
for(i=0;(i<tam)&&(s[i]!=0);i++){
c=(unsigned char)s[i];
//printf("%d: c=%c=%d c2=%c=%d\n",i,c,(unsigned char)c,c2,(unsigned char)c2);
c2=(unsigned char)s[i+1];
if(c==194){
//caracteres estranhos!!!: limpa os dois caracteres
volta_uma_casa(s,i);
volta_uma_casa(s,i);
}else{
if(c==195){//algum caracter que interessa
if((c2>=128)&&(c2<=128+6)){//À Á Â Ã Ä Å Æ
s[i]='A';
volta_uma_casa(s,i+1);
}else
if(c2==128+7){//Ç
s[i]='C';
volta_uma_casa(s,i+1);
}else
if((c2>=128+8)&&(c2<=128+11)){//È É Ê Ë
s[i]='E';
volta_uma_casa(s,i+1);
}else
if((c2>=128+12)&&(c2<=128+15)){//Ì Í Î Ï
s[i]='I';
volta_uma_casa(s,i+1);
}else
if(c2==144+1){//Ñ
s[i]='N';
volta_uma_casa(s,i+1);
}else
if((c2>=144+2)&&(c2<=144+6)){//Ò Ó Ô Õ Ö
s[i]='O';
volta_uma_casa(s,i+1);
}else
if((c2>=144+9)&&(c2<=144+12)){//Ù Ú Û Ü
s[i]='U';
volta_uma_casa(s,i+1);
}else
if((c2>=160)&&(c2<=128+6)){//à á â ã ä å æ
s[i]='a';
volta_uma_casa(s,i+1);
}else
if(c2==160+7){//ç
s[i]='c';
volta_uma_casa(s,i+1);
}else
if((c2>=160+8)&&(c2<=160+11)){//è é ê ë
s[i]='e';
volta_uma_casa(s,i+1);
}else
if((c2>=160+12)&&(c2<=160+15)){//ì í î ï
s[i]='i';
volta_uma_casa(s,i+1);
}else
if(c2==176+1){//ñ
s[i]='n';
volta_uma_casa(s,i+1);
}else
if((c2>=176+2)&&(c2<=176+6)){//ò ó ô õ ö
s[i]='o';
volta_uma_casa(s,i+1);
}else
if((c2>=176+9)&&(c2<=176+12)){//ù ú û ü
s[i]='U';
volta_uma_casa(s,i+1);
}else
{
//caracteres estranhos!!!: limpa os dois caracteres
volta_uma_casa(s,i);
volta_uma_casa(s,i);
}
}
}
}
}
Ficou um pouco extensa, mas funciona bem.