matlab,utf-8,西里尔文

时间:2017-11-09 20:01:51

标签: matlab utf-8 cyrillic

  
    

加载file.txt

  

使用加载错误

ASCII文件第1行的未知文本

only.words.txt

“каÑ,Ðμгорœ¸Ñ”。

如何将保存在utf-8(西里尔文)中的文本文件加载到matlab并使用TMG matlab工具箱?我知道前段时间发布的类似答案。它没有解决我的问题。 TMG仍然不起作用。

1 个答案:

答案 0 :(得分:1)

为了正确处理UTF字符串,您必须使用二进制方法从文本文件中读取它们,如下所示:

fid = fopen('mytext.txt','rb');
bytes = fread(fid,'*uint8')';
fclose(fid);

txt = native2unicode(bytes,'UTF-8');

此时,您的字符串将包含正确的值,但Matlab仍然无法正确显示它。要解决此问题,您必须使用支持unicode字符的字体的Java Swing基础标签:

import('java.awt.*');
import('java.swing.*');

lbl = JLabel();
lbl.setFont(Font('Arial Unicode MS',Font.PLAIN,30));
lbl.setText(txt);

或修改Matlab使用的默认字符集的未记录的函数(默认设置为ISO-8859-1):

feature('DefaultCharacterSet','UTF-8');