2013-05-30 2 views
-1

У меня проблема с кодировкой ISO в MATLAB.ISO-8859-1 кодирование MATLAB

У меня есть файл регистрации, со всеми возможными значениями между 0..255, хранящимся в двоичном формате. Когда я открываю этот файл в Matlab и читаю одну строку, MATLAB показывает мне правильное представление в ISO-8859-1. Все идет нормально.

Например, значение 155 (0x9B) показывает символ «>». (Любые небольшие значения символов, подобные этой работе). Matlab показывает это правильно, но когда я хочу, чтобы процесс целое значение с double(>), возвращаемое значение равно 8250, что не является значением ASCII.

Что я могу изменить в кодировке файла?

изменить: файл журнала был написан с помощью python, в случае, если это имеет значение.

+2

Почему этот помеченный 'python'? – mgilson

+1

Что это связано с python? : D –

+0

'double (ISO-Character)' Мне жаль, что это всего лишь представление ... может быть, 'double ('>')' лучше –

ответ

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); 
Смежные вопросы