fprintf save file as UINT16 or UTF16
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hanif Juma
am 27 Jul. 2017
Kommentiert: Noam Greenboim
am 21 Mai 2020
Hello all,
I am writing a parameter text file that is later used by some really really old C code I'm using. The code needs the parameter text file to be saved as UTF-16 (uint16) I believe. My current methodology is the following:
f = fopen(fid,'w');
fprintf(f,'REAL parameter_first = 5\n');
fclose(f);
In terminal a quick file -bi file.params text/plain; charset=us-ascii
How do I save it as a UTF-16 ?? Thank you in advance!!
0 Kommentare
Akzeptierte Antwort
Jan
am 27 Jul. 2017
Bearbeitet: Jan
am 27 Jul. 2017
There is no unique identifier to mark a text file as UTF16. Note that UINT16 is something different. Try this:
f = fopen(fid,'w');
fwrite(f, ['REAL parameter_first = 5', char(10)], 'uint16');
fclose(f);
This uses UINT16 as format, but this works only because Matlab uses UINT16 to store CHAR variables.
1 Kommentar
Noam Greenboim
am 21 Mai 2020
For adding a BOM, see here:
Weitere Antworten (1)
Walter Roberson
am 27 Jul. 2017
Guessing about the byte order:
f = fopen(fid, 'w', 'ieee-be', 'UTF-16BE');
fprintf(f, 'REAL parameter_first = 5\n');
fclose(fid)
Matters get more complicated if you need to write out characters whose code points are above 255: in such a case you need to use fwrite(), and the task of converting codepoints is most easily done with unicode2native() to produce a sequence of uint8 that you fwrite()
0 Kommentare
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!