MATLAB: Function fileread reads some values wrong

fileread wrong dataMATLAB

I'm triying to read text from a file (extension .ubx, file attached ) into a matrix A . For this i'm using the follwing line of code
A = fileread([filepath filename]);
Basically this is working. But all characters with hex value 0x96 in the original file, matlab reads wrong value of hex 0xFF in matrix A.
This behavior occured with Matlab R2015a , R2015b , R2016a on Windows 10. But with Matlab R2015b and R2016a on Apple Macbook, everything works correctly.
To display matrix A in hex format, i use the command
format hex
uint8(A)
Does anybody know what i did wrong? I also tryed the command textread, but this gave the same result.

Best Answer

"all characters with hex value 0x96". As far as I can tell, these hex values are not characters in any standard text encoding. And that is your problem: you're attempting to read a file that is a combination of text and binary data as purely text. As a result, the binary portion gets munged when it is converted to text.
The solution is to read the file as binary and convert only those portions that are supposed to be text as text:
fid = fopen('08 mitte links.ubx');
binarycontent = fread(fid, '*uint8'); %read file as bytes (uint8)
text{1} = char(binarycontent(48:229)')