gpt4 book ai didi

java - Apache POI 或 java.io 是否支持非英文字符?

转载 作者:行者123 更新时间:2023-12-01 11:17:24 24 4
gpt4 key购买 nike

我使用 Apache POI 从 Excel 文件中读取,以获取 docx、doc、xls 和 xlsx 文件的路径,解密文件内容并构建新路径来读回数据。

现在的问题是当路径包含法语字符时,如下所示:

/Valérie/CASES.doxcs
is = new FileInputStream(path);

该行将出现以下异常:

(No such file or directory)
at java.io.FileInputStream.open(Native Method)

它适用于其他路径,这是否意味着 Apache POI 不支持非英文字符,还是有其他问题?无论如何要解决这个问题吗?

最佳答案

由于这是操作系统问题,您可以转换路径:

static String toFileName(String name) {
return java.text.Normalizer.normalize(name, Form.NFKD)
.replaceAll("\\P{ASCII}", ""); //.replaceAll("[\"/\\]", "_");
}

上面的代码会将 é 转换为 e 等,方法是将带重音符号的字母拆分为基本字母加重音符号。可能有更好的音译。并考虑西里尔字母和其他文字。

更好的解决方案是迁移到使用 UTF-8 的 Linux 系统。您可能仍然希望将重音用法标准化为一种独特的形式,例如最短的字符序列:

static String toFileName(String name) {
return java.text.Normalizer.normalize(name, Form.NFKC);
}

关于java - Apache POI 或 java.io 是否支持非英文字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31647781/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com