首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matlab,utf-8,西里尔

matlab,utf-8,西里尔
EN

Stack Overflow用户
提问于 2017-11-09 20:01:51
回答 1查看 564关注 0票数 3

负载file.txt

错误使用负载

ASCII文件第1行中的未知文本

only.words.txt

“\x{e76f}\\{e76f}\\{e76f}\x{e76f}\x{e76f}\\{e76f}\\{e76f}\x{e76f}\x{e76f}\{e76f}\x{e76f}\x{e76f}\\{e76f}\x{e76f}\\{e76f}\\{e76f}\x{e76f}

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

EN

回答 1

Stack Overflow用户

发布于 2017-11-12 13:58:46

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

代码语言:javascript
复制
fid = fopen('mytext.txt','rb');
bytes = fread(fid,'*uint8')';
fclose(fid);

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

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

代码语言:javascript
复制
import('java.awt.*');
import('java.swing.*');

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

或者修改Matlab使用的默认字符集(默认情况下设置为ISO-8859-1)的无文档函数:

代码语言:javascript
复制
feature('DefaultCharacterSet','UTF-8');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47210565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档