所以沃尔特的暗示,这实际上是utf - 8之后,我们发现在mac返回文件名分解形式,而其他系统使用组成形式(或者任何给定的用户)。
http://download.oracle.com/javase/6/docs/api/java/text/Normalizer.html
我没有找到任何方法处理这种在matlab的家乡,但Java提供了所需的方法:
% %一些方便的定义
NFD = javaMethod(“的”,“美元java.text.Normalizer形式”,“NFD”);
NFC = javaMethod(“的”,“美元java.text.Normalizer形式”,“NFC”);
use UTF8 = java.nio.charset.Charset.forName (“utf - 8”);
% %转换文件的名称从dir明智的matlab字符串:
D = dir (' * . txt ');
s2 = D.name;
s =以(uint8 (s2), UTF8);
sc = java.text.Normalizer.normalize(年代,NFC);
sc = char (sc);
比较字符串(sc oaa.txt)
ans =
1
% %,相反的,与重音字符:打开一个文件
文件名=“oaa.txt”;
s =以(文件名);
sc = java.text.Normalizer.normalize(年代,NFD);
b =单(sc.getBytes (use UTF8) ');
bs (b < 0) = 256 + (bs (b < 0));
id = fopen (char (bs)、“r”)
id =
3