gpt4 book ai didi

java - 如何获取未解码的文件名

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:00 27 4
gpt4 key购买 nike

有人可以给我一些关于如何获取文件名的未解码字节 [] 的提示吗?我想自己解码。我已经跟踪了 java src 代码,但我被 native 函数阻止了。非常感谢!

我的意思是我想要文件名的原始 byte[],而不是将其转换为字符串然后再将其转换回来。这可能会导致某些使用 native 编码而非 unicode 的文件名丢失其原始字节。 JAVA 总是给我 unicode 解码后的文件名,我不要。

我假设我必须处理来自某个地方的一些文件,但我不完全知道它们使用的编码。但是,我只是不想让系统为我解码。我想自己决定应该使用哪种解码。所以我需要文件名的原始 byte[]。

也欢迎使用 C/C++ 解决方案。

最佳答案

据我所知,标准 Java API 不提供任何方法来检索底层操作系统用作“ native ”文件名的字节流;所有 API 都将文件名处理为 java.lang.String,因此采用 Unicode。

您当然可以使用 String.getBytes 将 String 转换回 byte[],但这不会为您提供原始表示形式。我想获得它的唯一方法是使用 JNI 和操作系统 native 文件系统 API。

实际上,在 Windows 上,这意味着您使用 C/C++ 代码来获取文件名,并通过 JNI 调用它来获取“真实”文件名。

关于java - 如何获取未解码的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4364714/

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