Matlab误读ascii文本文件

Matlab misreading ascii text file

这是在使用 Matlab 分析一些文本文件时出现的问题,它搞砸了一些文本。我正在使用 R2017a (9.2.0.538062) 64 位 (maci64)。请注意重音字符。

其他文本编辑器("War and Peace.txt")(Textmate、Emacs、Textedit 和 GNU Octave)以及其他程序(Python、Ruby、数学)。

那是在 1805 年 7 月,演讲者是著名的 Anna Pávlovna Schérer,她是女皇玛丽亚·费多罗夫娜 (Márya Fëdorovna) 的宠儿和伴娘。

而在 Matlab 中

那是在 1805 年 7 月,演讲者是著名的 Anna Pávlovna Schérer,她是女皇 Má¡

我的问题

是否有可以准确读取 Ascii 文本的 Matlab(首选项?)设置? Matlab 似乎混淆了有效的 Ascii 字符(主要在 200-256 范围内)。

在尝试从文本文件中读取字符串时,我实际上遇到了与您相同的问题。我的问题是我以 ANSI 编码格式保存了 .txt 文件。经过多次尝试,我想出了一个解决方案。首先,您必须以 UTF-8 编码格式保存文件。像这样:

然后在您的 MATLAB 代码中,您应该在 fopencommand 中指定 encondigIn

测试代码可以是这样的:

close all;clearvars;clc;

fileID = fopen('text.txt', 'r', 'n', 'UTF-8');
C = textscan(fileID, '%s');
fclose(fileID);

celldisp(C) 

此代码的输出为:

C{1}{1} =

It


C{1}{2} =

was


C{1}{3} =

in


C{1}{4} =

July,


C{1}{5} =

1805,


C{1}{6} =

and


C{1}{7} =

the


C{1}{8} =

speaker


C{1}{9} =

was


C{1}{10} =

the


C{1}{11} =

well-known


C{1}{12} =

Anna


C{1}{13} =

Pávlovna


C{1}{14} =

Schérer,


C{1}{15} =

maid


C{1}{16} =

of


C{1}{17} =

honor


C{1}{18} =

and


C{1}{19} =

favorite


C{1}{20} =

of


C{1}{21} =

the


C{1}{22} =

Empress


C{1}{23} =

Márya


C{1}{24} =

Fëdorovna.