2017-04-11 2 views
2

これは、一部のテキストを不正確にしているMatlabを使用して、一部のテキストファイルを分析する際の問題です。私はR2017a(9.2.0.538062)64ビット(maci64)を使用しています。アクセント付きの文字に注意してください。Matlabがasciiテキストファイルを誤読しています

他のテキストエディタ(Textmate、Emacs、Textedit、およびGNU Octave)や他のプログラム(Python、Ruby、Mathematica)を正しく読み込んでいます(War and Peace.txt)。

それは1805年7月にあり、スピーカーは、皇太后MáryaFëdorovnaの名誉とお気に入りのメイド、有名なアンナ・パブロフナ・シュレールであった。

Matlabの

にそれは7月、1805年にあった、と話はよく知られたアンナPávlovnaSCHA©のRER、皇后MáryaFA«のdorovnaの名誉と好きなのメイドだったのに対し。

私の質問

は正確にASCIIテキストを読みますMatlabの(好み?)の設定はありますか? Matlabは有効なAscii文字(ほとんどが200-256の範囲)を文字化けしているようです。

+2

多分[MATLAB:どのようにファイルから読み込むUTF-8でエンコードされたテキストを表示するには? ](http://stackoverflow.com/q/6863147/5358968) – Steve

+0

私はそれらが完全にASCII文字だとは思わない。あなたはちょうど大文字(A)を得ているように見え、その後にガベージ文字が続きます。たぶん大文字のアクセント付き文字しかないので、最初のものを手に入れているだけかもしれません。 –

答えて

0

テキストファイルから文字列を読み取ろうとすると、私は実際にあなたと同じ問題に直面しました。私の問題は、.txtファイルをANSIエンコーディングフォーマットに保存したことでした。多くの試練の後、私は解決策を思いつきました。まず、ファイルをUTF-8エンコーディング形式で保存する必要があります。このように:

test

そして、MATLABコードで、あなたはfopencommandencondigInを指定する必要があります。

テストコードのようなものになります

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. 
+1

ありがとう、オサマ。あなたのソリューションは完全に機能しました。あなたの研究に幸運 - 私は若いときに工学を学びたいと思っています。ベスト、デイブ – user3161399

+0

@ user3161399だから私は助けてうれしい。ビンゴ:) – Tes3awy

+0

答えを受け入れることを検討@ user3161399 – Tes3awy