如何解决写入RTF文件时的奇怪行为
在Matlab中,我有一个处理RTF文件的奇怪行为。
使用以下指令读取rtf文件:
cin = textread(filename,'%s','delimiter','\n');
(cin)是一个Nx1单元,其中N是文件的行数, 所以我可以编辑一些特定的行。
我使用以下功能编写文件RTF:
function dum= cell2rtf(cin,filename)
[row,col]= size(cin);
fout= fopen(filename,'w');
for ii=1:row
if(ii<row)
fprintf(fout,'%s\r\n',cin{ii});
else
fprintf(fout,cin{ii});
end
end
fclose(fout);
奇怪的行为是这样的:
如果cin{x}
行是包含内容的字符串
'19°\cell 19°\cell \cell \cell \cell 70°'
由函数写入文件时,同一行如下所示
'19°\cell 19°\cell \cell \cell \cell 70°'
我不明白为什么字符'°'
每次都会变成'°'
而且我想知道如何解决这个问题。
解决方法
问题是EXPLAIN SELECT * FROM LatestDate;
适用于纯文本文件,而RTF文件不是纯文本文件:它们是包含标记和格式代码的二进制形式的文件,有点像Word textread()
文件。 .doc
可能会遇到这些格式/结构代码,并将它们误解为纯文本字符,而这就是诸如textread()
之类的垃圾字符的来源。
您能将RTF文件另存为纯文本文件并从中读取吗?
否则,您将需要编写RTF解析器或找到一个RTF解析库并使用它。 Matlab可以很轻松地与Java库配合使用,因此您可以使用Apache Tika库的RTFParser或RTFParserKit。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。