当我执行类似的代码
时public static void main(String[] args) throws IOException {
Path path = Paths.get("/home/user/folder/中文.pdf");
}
我遇到异常
Exception in thread "main" java.nio.file.InvalidPathException: Malformed input or input contains unmappable characters: /home/user/folder/中文.pdf
at sun.nio.fs.UnixPath.encode(UnixPath.java:147)
at sun.nio.fs.UnixPath.<init>(UnixPath.java:71)
at sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.java:281)
at java.nio.file.Paths.get(Paths.java:84)
at MyClass.main(MyClass.java:118)
为什么会抛出?
当我尝试在系统中手动创建文件时,一切正常。
我已经安装了所有必需的语言库。
在终端显示中呼叫$locale -a
C
C.UTF-8
POSIX
de_DE.utf8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL
en_IL.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
sv_SE
sv_SE.iso88591
swedish
zh_CN.utf8
zh_HK.utf8
zh_SG.utf8
zh_TW.utf8
操作系统:Kubuntu 18.04 64位;
KDE Plasma版本:5.12.6;
内核版本:4.15.0-42-通用;
java版本“ 1.8.0_191”
Java(TM)SE运行时环境(内部版本1.8.0_191-b12)
Java HotSpot(TM)64位服务器VM(内部版本25.191-b12,混合模式)