这是使用Matlab分析一些文本文件时出现的问题,这会搞砸一些文本。我正在使用R2017a(9.2.0.538062)64位(maci64)。请注意重音字符。
其他文本编辑正在正确阅读文件(“War and Peace.txt”)(Textmate,Emacs,Textedit和GNU Octave),以及其他程序(Python,Ruby,Mathematica)。
那是在1805年7月,演讲者是着名的女仆MáryaFëdorovna的女仆AnnaPávlovnaSchérer。
而在Matlab中
那是在1805年7月,演讲者是着名的AnnaPÃvlovnaSchérr,伴娘和女皇MáryaFÓdorovna的最爱。
我的问题
是否有准确读取Ascii文本的Matlab(首选项?)设置? Matlab似乎是有效的Ascii字符(大多数在200-256范围内)。
答案 0 :(得分:0)
当我尝试从文本文件中读取字符串时,我实际上遇到了与您相同的问题。我的问题是我以.txt
编码格式保存了ANSI
文件。经过多次试验,我想出了一个解决方案。首先,您必须以UTF-8
编码格式保存文件。像这样:
然后在您的MATLAB代码中,您应在encondigIn
command中指定fopen
。
测试代码可以是:
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.