fprintf or fwrite non ASCII characters

13 views (last 30 days)
Hi everyone,
I am trying to write some strings on a text but some of them contain σ and μ and they are not written correctly in my file when I use either fprintf or fwrite. I tried also to open my file (fopen) with different encondings but nothing changed. Below you find my most significant attempts:
SheetName = 'example';
text_file = fopen(strcat(SheetName, '.txt'), 'w+','n','windows-1253');
fprintf(text_file,'%c', 'σ'); % prints ?
fprintf(text_file,'%s', char(963)); % prints ó
fprintf(text_file, '\x03c3'); % prints ó
fwrite(text_file, 'σ'); % prints ?
fwrite(text_file, char(963)); % prints ÿ
If I don't put the encoding 'windows-1253' I get even worse results: second and third line print a small square.
I have also read that it could depend on my OS but honestly I don't get why. Anyway, I have Windows 10 Pro.
Could you help me out with this? Thanks in advance!
  6 Comments
Stephen23
Stephen23 on 3 Jun 2021
Edited: Stephen23 on 3 Jun 2021
@Daniele Venanzetti: what OS are you using?
Perhaps you could try using these FOPEN options:
fopen('test.txt','w','n','UTF-8')
Daniele Venanzetti
Daniele Venanzetti on 3 Jun 2021
I have Windows 10 Pro. I tried your fopen options and I got this:

Sign in to comment.

Answers (1)

Constantino Carlos Reyes-Aldasoro
Have you tried using TeX formatting? I.e. \alpha \sigma \mu
https://uk.mathworks.com/help/matlab/creating_plots/greek-letters-and-special-characters-in-graph-text.html
  3 Comments
Constantino Carlos Reyes-Aldasoro
Have you tried using ascii values? e.g.
strcat('a=',181)
ans = 'a=µ'
Daniele Venanzetti
Daniele Venanzetti on 4 Jun 2021
It works only on the command window but I need to write it in a text.

Sign in to comment.

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!