【问题标题】:matlab, utf-8, Cyrillicmatlab, utf-8, 西里尔文
【发布时间】:2018-04-22 23:04:49
【问题描述】:

加载文件.txt

使用加载出错

ASCII 文件第 1 行的未知文本

只有.words.txt

“каÑ,егориє。

如何将保存为 utf-8 (Cyrillic) 的文本文件加载到 matlab 中并使用 TMG matlab 工具箱?我知道前段时间在这里发布了一个类似的答案。它不能解决我的问题。 TMG 还是不行。

【问题讨论】:

标签: matlab utf-8 cyrillic


【解决方案1】:

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

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

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

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

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');

【讨论】:

  • 谢谢。我想问题是我正在使用的特定包。我在 matlab 中使用 TMG 包,它不适用于西里尔字符。
猜你喜欢
  • 2012-04-01
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
  • 2014-05-02
  • 1970-01-01
  • 2019-08-28
  • 2015-11-01
  • 1970-01-01
相关资源
最近更新 更多