用MATLAB打开含有英文、数字和汉字的txt文件 |
您所在的位置:网站首页 › 日内瓦怎么读中文 › 用MATLAB打开含有英文、数字和汉字的txt文件 |
之前也没接触过用MATLAB打开含有英文、数字和汉字的txt文件,结果网上查了一下,打开的文件内容中文全部显示乱码,折腾了大半天终于解决了。 一、常用打开方法:1、Data = load("filename.txt"); 只支持仅含有数字的文本文件,如果夹杂着字母或者汉字,则会报错。 2、Data = importdata("filename.txt"); 可以读取数字和字符:Data.data里存放纯数字,Data.textdata是以文本形式存放的所有数据。 3、textread 见高人博客http://blog.sina.com.cn/s/blog_9e67285801010bju.html 4、tline = fgetl(fid) 从文件中读取一行数据,并去掉行末的换行符。 fid是通过fopen函数打开文件后得到的一个整型的文件标识。fgetl从这个文件中读取一行数据并丢弃其中的换行符。如果读取成功,tline容纳了读取到的文本字符串,如果遇到文件末尾的结束标志(EOF),则函数返回-1,即tline值为-1。 返回的字符串tline并不包含文本行的行终止符。要得到行终止符,可以使用函数fgets。 最开始用的代码: fid = fopen('test.txt'); while 1 tline = fgetl(fid); if ~ischar(tline) break end disp(tline) end fclose(fid);但是这样中文会全部为乱码。网上有说用native2unicode函数转换一下。尝试无效 fid = fopen('test.txt'); while 1 tline = fgetl(fid); if ~ischar(tline) break end tline = native2unicode(tline); disp(tline) end fclose(fid);最终解决办法:这是因为fopen文件时,没有指定打开方式,则会以默认编码方式打开(ASCII码或二进制),但是很多txt文件不是这两种编码方式。在打开文件时指定为‘UTF-8’格式即可。 fid = fopen('test.txt','r','n','UTF-8'); while 1 tline = fgetl(fid); if ~ischar(tline) break end disp(tline) end fclose(fid);另外附一个可能会有用的博客 ‘解决MATLAB中文乱码’ https://blog.csdn.net/soliddream66/article/details/61414565
|
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |