首页 > 解决方案 > IFileStore 无法从带有重音字符的路径中读取 Eclipse RCP

问题描述

IFileStore代表我的 RCP 应用程序的本地文件系统中的一个文件。这在任何路径的 Windows 中都能完美运行。但是,在 mac os 中,如果路径包含重音字符(如á é í),iFileStore 对象无法正确获取信息。

IFileInfo iFileInfo = iFileStore.fetchInfo();

无论如何,这可以处理吗?

标签: javaeclipse-plugineclipse-rcp

解决方案


macOS 对文件路径使用“分解”格式 - 重音与字符分开存储。这称为 Unicode NFD 格式。

在 Eclipse 插件中,您可以使用com.ibm.icu.text.Normalizer2将字符串转换为分解格式

Normalizer2 normalizer = Normalizer2.getNFDInstance();

String decomposed = normalizer.normalize(string);

利用

EFS.getLocalFileSystem().getStore(new Path(decomposed));

IFileStore从路径中获取


推荐阅读