matlab, utf-8, 西里尔文

标签 matlab utf-8 cyrillic

load file.txt

加载错误

ASCII 文件第 1 行的未知文本

只有.words.txt

“ÐºÐ°Ñ‚ÐµÐ³Ð¾Ñ€Ð¸Ñ ".

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

最佳答案

为了正确处理 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');

关于matlab, utf-8, 西里尔文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47210565/

相关文章:

java - 无法使用 WorkBook Factory 打开西里尔文密码保护的 xlsx 文件

matlab - 逻辑为 char

matlab - 3D 图像的本地二进制模式。 - MATLAB

使用 FileWriter 进行 Java UTF-8 编码

python - 'ascii' 编解码器无法解码位置 5367 : ordinal not in range(128) 中的字节 0xe2

c - 如何将 char cyrillic 数组转换为每个 char 符号的 unicode 代码数组?

python - 如何在 Python 中获取 ASCII 西里尔字符代码?

matlab - ICA(独立分量分析)快速定点算法

matlab - 为什么 realmin > eps(0)?

javascript - JS中带有UTF8字符的正则表达式自动换行