有啥问题?
先把 utf8 的文件名转成 gbk 的 string, 然后再用 gbk 的 string 去访问不就行了嘛.
我用下面的试了下, 可以访问的啊, 还是说我理解错了你的意思?(FileUtil 是 HuTool 中的)
@
Test public void charsetTest(){
String content = "草泥马";
byte[] gbks = content.getBytes(Charset.forName("GBK"));
// gbk 在 UTF8 下的字符串表示
String gbkInUtf8 = StrUtil.str(gbks, StandardCharsets.UTF_8);
log.info(gbkInUtf8); // ������
FileUtil.writeUtf8String("fuck", "F:\\Projects\\Learn\\JavaProjects\\aio-learn\\Logs\\"+gbkInUtf8+".txt");
String s1 = FileUtil.readUtf8String("F:\\Projects\\Learn\\JavaProjects\\aio-learn\\Logs\\" + gbkInUtf8 + ".txt");
log.info(s1);
List<String> fileNames = FileUtil.listFileNames("F:\\Projects\\Learn\\JavaProjects\\aio-learn\\Logs");
for (String fileName : fileNames) {
String s = FileUtil.readString("F:\\Projects\\Learn\\JavaProjects\\aio-learn\\Logs\\" + fileName, StandardCharsets.UTF_8);
log.info("{} - {}",fileName,s);
}
}