java - IFileStore 无法从带有重音字符的路径中读取 Eclipse RCP
问题描述
IFileStore代表我的 RCP 应用程序的本地文件系统中的一个文件。这在任何路径的 Windows 中都能完美运行。但是,在 mac os 中,如果路径包含重音字符(如á é í),iFileStore 对象无法正确获取信息。
IFileInfo iFileInfo = iFileStore.fetchInfo();
无论如何,这可以处理吗?
解决方案
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
从路径中获取
推荐阅读
- python - 多处理一个在python中返回列表的函数
- python - 在一级减去不匹配索引器的 pd 系列
- r - 替换R中整列中的撇号和空格
- python - Python Pandas 和 Seaborn 日期格式问题:strftime 对不同 seaborn 图表的工作方式不同
- flutter - 我如何在颤振中播放网络视频
- php - 如何在php中将具有并行属性的数组列表转换为类似对象的数组列表
- unit-testing - rust 中的单元测试、模拟和特征
- amazon-web-services - apiserver pod 无法加载基于 configmap 的 request-header-client-ca-file
- javascript - “GL_INVALID_OPERATION:缓冲区大小不足。” 在可变数量的渲染调用之后
- c# - 正则表达式查找范围内的 GUID 和数字