从文本文件中读取一个字符串,在MATLAB中返回奇怪的字符

时间:2014-08-02 21:50:06

标签: matlab text fopen fclose textscan

我正在使用这些代码从文本文件中读取"1.0.2"之类的字符串:

reader = fopen('Address\My_Text.txt');
Out= textscan(reader,'%str'); 
Out1=Out{1} ; 
Out2=Out1{1};
fclose(reader);

此代码(Out2)返回如下字符串:1.0.2。这是一个文本文件,由MATLAB从HDD中的其他位置复制,并使用上面的代码读取一次,用于与一些现有的文本文件进行比较,然后使用movefile替换此文件(主文件正常工作)。当我手动创建文本文件并在其中插入"1.0.2"时,这些代码会正确读取此值。问题是什么? MATLAB的解决方案是什么?

感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用fopen('My_Text.txt', 'r', 'n', 'UTF-8')以UTF-8编码打开此文件。有关添加的3个参数,请查看documentation of fopen以获取详细信息。

textscan之前插入fseek(reader, 3, 'bof')也可能以不同的方式解决此问题。 是UTF-8的BOM