无法从文件名读取特殊字符

断层

我遇到的情况是,Linux挂载的NAS包含文件名,该文件名具有斯堪的纳维亚字符,例如ä,ö,å。当我用ls列出文件时,我看到所有这些字符都作为问号(?)。如果运行ls -b,我将看到文件名的编码版本。像这样的字符:\ 303 \ 205

我需要从Java代码中读取这些文件及其文件名,但我无法读取如果我使用File.listFiles列出文件,则会得到问号而不是正确的字符。如果我将File转换为Path ,则会遇到异常:java.nio.file.InvalidPathException:格式错误的输入或输入包含不可映射的字符
,如果我在以下情况下设置了Dsun.jnu.encoding = UTF-8,便可以摆脱该异常运行它,但是我再次得到问号,而不是ä,ö或å。

我尝试通过check = relaxed之类的设置来挂载不同的NAS,但运气不佳。

感谢所有帮助。

断层

好的,解决了这个问题。如果我从Linux登录到用于运行代码的服务器,则它不会设置LC_CTYPE,但是,如果我使用MAC登录,则不会设置UTF-8。因此,应用程序在服务器上的工作方式取决于我用来运行它的SSH客户端。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法删除文件名中包含特殊字符的文件

来自分类Dev

无法删除文件名中包含特殊字符的文件

来自分类Dev

从文件名中删除特殊字符

来自分类Dev

带有特殊字符的文件名

来自分类Dev

文件名Java中的特殊字符

来自分类Dev

从文件名中删除特殊字符

来自分类Dev

无法删除/移动文件名中带有特殊字符的文件

来自分类Dev

opendir无法读取完整的文件名

来自分类Dev

python子进程模块无法解析带有特殊字符“(”的文件名

来自分类Dev

python子进程模块无法解析带有特殊字符“(”的文件名

来自分类Dev

使用特殊字符作为文件名创建文件

来自分类Dev

在Perl中以特殊字符打开文件名中的文件

来自分类Dev

无法从FileInputstream中读取带有俄语字符的文件名

来自分类Dev

Lubuntu 无法读取带有西里尔字符的文件名

来自分类Dev

更改bash中具有特殊字符的文件名

来自分类Dev

批处理:从文件名更改特殊字符(éèà...)

来自分类Dev

在Linux中批量删除文件名中的特殊字符

来自分类Dev

删除文件名中带有特殊字符的目录

来自分类Dev

文件名中的特殊字符(\#033OA)

来自分类Dev

处理带有特殊首字符的文件名(例如♫)

来自分类Dev

在Windows中从文件名中批量删除特殊字符

来自分类Dev

Powershell从文件名中删除特殊字符

来自分类Dev

bash-处理文件名中的特殊字符

来自分类Dev

终端命令:处理文件名中的特殊字符

来自分类Dev

vertx Java 下载文件名特殊字符

来自分类Dev

文件名和路径中的特殊字符

来自分类Dev

Lazarus ListBox SaveToFile 带有特殊字符的文件名

来自分类Dev

从powershell中的文件名中删除特殊字符

来自分类Dev

从文件名中删除某些特殊字符

Related 相关文章

热门标签

归档