txt文件ANSI和UTF-8存储格式问题---阿西巴

在处理TXT文件时遇到编码问题,文件部分为UTF-8,部分为ANSI,导致中文乱码。通过读取全部内容再转换解决了UTF-8文件的乱码,但发现一些原本是ANSI编码的文件在转换后乱码。最终通过检查原始文件,手动将所有文件另存为ANSI格式解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      事情是这样的,我有几个超大的txt文件,文件内容是几年的英文文章,每篇文章前用横线隔开。每篇文章分为好几部分,每一部分都以中文标签打头后接正文部分。例如“正文:Today bejing ...”或者“出版日期: Dec 21, 2010”。

    要做的任务是1.把这些文章按照每篇且分开,然后2.按照出版日期里的日期命名。当切分开始出现了问题,切分出的文件有部分是以utf-8保存的,这就导致进行第二步操作时出现中文乱码,不能找到“出版日期”,不能忍!!!于是想将第一步获得的切分文件由utf-8转换为ANSI格式。

找了许多方法,终于找到个靠谱的,见代码


    int fileNum=0;
    findFiles(argv[2],fileNames,fileNum);
	for(int i=0;i<fileNum;++i)
	{
		system("cls");
		cout<<fileNames[i]<<endl;
		ifstream fin(fileNames[i]);  
		string name=fileNames[i];
		name=name.substr(name.rfind("\\"));
		
		string line,comboLine="";
		while(getline(fin,line))
		{
			comboLine+=line+"\n";
		}
		char * data=new char[comboLine.length()];
		strcpy(data,comboLine.c_str());
		char * ansiLine=changeTxtEncoding(data);
		ofstream fout(argv[3]+name);
		fout<&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值