matlab - 将unicode字符串写入Matlab中的文件

标签 matlab unicode utf-8

我有一个包含乌尔都语字符的字符串,例如“بجلی”,这是一个 1x4 数组。我想将其保存到一个文件中,该文件可以在外部查看。虽然此字符串不会显示在主命令窗口中,但变量“str”确实保存了它。当我使用 fprintf(fid, str) 保存此文件并在记事本中打开该文件时,原始字符上会出现“箭头”。我可以轻松地将我的字符手动粘贴到记事本中。问题出在哪里?

最佳答案

你需要使用 fwrite() 而不是 fprintf():

fid = fopen('temp.txt', 'w');

str = char([1576, 1580,  1604, 1740, 10]);

encoded_str = unicode2native(str, 'UTF-8');
fwrite(fid, encoded_str, 'uint8');

fclose(fid);

验证:

perl -E "open my $fh, q{<:utf8}, q{temp.txt}; while (<$fh>) {while (m/(.)/g) {say ord $1}}"
1576
1580
1604
1740

关于matlab - 将unicode字符串写入Matlab中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12415767/

相关文章:

matlab - 通过在每次迭代中省略一个索引来生成一组索引的循环

java - 在 MATLAB 中更改 seqlogo 图形的 x 轴

python - Utf-8 与 sqlalchemy 在具有 init connect 的数据库上

c# - 从 .Net 调用 Matlab 对象的(目录)方法

matlab - 如何更改给定箱线图图形的 'PlotStyle' 属性?

python - 使用 PIL(Python 图像库)编写带有变音符号 ("nikud"的文本,发声标记)

javascript - Unicode 字符不起作用

python - 字节字符串与 Unicode 字符串。 Python

java - java中通过socket的Unicode文本

c++ - C++11中是否需要u8字符串文字