|
楼主 |
发表于 2005-6-16 20:35:25
|
显示全部楼层
用以前学的一点C语言编了一段程序,用来清除文件中出现的乱码,很管用的……
#include <stdio.h>
main(argc,argv)
int argc;
char *argv[];
{
int c;
FILE *fp,*fq;
fp=fopen(argv[1],"r");
fq=fopen(argv[2],"w");
while((c=fgetc(fp))!=EOF)
{
if(c>0xBF)
c=change(c);
fputc(c,fq);
}
fclose(fp);
fclose(fq);
}
int change(int c)
{
switch(c)
{
case 0xC0:
case 0xC1:
case 0xC2:
case 0xC3:
case 0xC4:
case 0xC5:c=0x41;break;
case 0xC7:c=0x43;break;
case 0xC8:
case 0xC9:
case 0xCA:
case 0xCB:c=0x45;break;
case 0xCC:
case 0xCD:
case 0xCE:
case 0xCF:c=0x49;break;
case 0xD2:
case 0xD3:
case 0xD4:
case 0xD5:
case 0xD6:
case 0xD8:c=0x4F;break;
case 0xD9:
case 0xDA:
case 0xDB:
case 0xDC:c=0x55;break;
case 0xE0:
case 0xE1:
case 0xE2:
case 0xE3:
case 0xE4:
case 0xE5:c=0x61;break;
case 0xE7:c=0x63;break;
case 0xE8:
case 0xE9:
case 0xEA:
case 0xEB:c=0x65;break;
case 0xEC:
case 0xED:
case 0xEE:
c=0x69;break;
case 0xF2:
case 0xF3:
case 0xF4:
case 0xF5:
case 0xF6:
case 0xF8:c=0x6F;break;
case 0xF9:
case 0xFA:
case 0xFB:
case 0xFC:c=0x75;break;
}
return c;
} |
|