-1

我在 MATLAB 中遇到 ISO 编码问题。

我有一个日志文件,其中所有可能的值都0..255以二进制格式存储。当我在 matlab 中打开此文件并读取一行时,MATLAB 向我显示了 ISO-8859-1 中的正确表示。到现在为止还挺好。

例如,值 155 (0x9B) 显示字符“>”。(任何像这样的小字符值都有效)。Matlab 正确显示了这一点,但是当我想处理一个整数值时,返回值是double(8250 ),它不是 ASCII 值。

我可以对文件的编码进行哪些更改?

编辑:日志文件是用 python 编写的,以防万一。

4

1 回答 1

0

我发现了问题。我错过了在 fopen 命令中设置编码。工作解决方案:

%creating testfile
ascii=char([191    210    191    212    191    228   192    215    192    144      198    175   155    236    254    201    10]);  %problem value here the 155
logID=fopen('testdatei.log','w','n','ISO-8859-1');
fwrite(logID,ascii);
fclose(logID);

% wrong filehandling
logID=fopen('testdatei.log');
line=fgetl(logID);
decode=double(line);
disp('wrong encoding')
decode(13)
fclose(logID);

%right filehandling
logID=fopen('testdatei.log','r','n','ISO-8859-1');
line=fgetl(logID);
decode=double(line);
disp('right encoding')
decode(13)
fclose(logID);
于 2013-05-31T08:43:37.613 回答