utf-8文件的读写

来源:互联网 发布:铣半圆编程 编辑:程序博客网 时间:2024/06/07 06:23

在转换.txt->csv 格式的时候,由于 txt 中包含了中文,编码格式为 utf-8,导致在使用 matlab 的时候出现了乱码。使用 load, textread 均无法导入文件。后来通过 fopen 函数打开文件,逐行读取文件,并逐行将读取的文件写入.csv 文件才解决了此问题。

之前一直考虑将文件全部读进内存再统一写入会快一些,实验证明逐行写文件速度也不是很慢。450个文件时间大概在10s 左右。代码如下:

clear; close all; clc;fw = fopen('gc.csv','w');for i= 1 : 445    frname = [num2str(i),'.txt'];    fp = fopen(frname,'r','n','utf-8');    while ~feof(fp) %判断是否到文件末尾        s = fgetl(fp); %逐行读取文件        blank = fgetl(fp);        fprintf(fw, '%s,\n', s);%按格式写入文件    end    fclose(fp);    fprintf(fw, ',\n');    fprintf(fw, ',\n');endfclose(fw);
0 0