Java 日文文件名存储在垃圾字符中

Java 日文文件名存储在垃圾字符中,java,linux,utf-8,debian,Java,Linux,Utf 8,Debian,我有一个名为日语字符的文件,我正在使用以下代码行将其从windows上载到Debian(Linux): file.write( new File( "/storing/path/", "ネットワーキング.xml" ) ); 当我在Debian(Linux)中通过命令提示符检查文件时,它存储为 "???????????.xml" 我尝试了不同的方法,但到目前为止没有任何效果- 1) 使用BufferedReader: BufferedReader reader = new BufferedR

我有一个名为日语字符的文件,我正在使用以下代码行将其从windows上载到Debian(Linux):

file.write( new File( "/storing/path/", "ネットワーキング.xml" ) );
当我在Debian(Linux)中通过命令提示符检查文件时,它存储为

"???????????.xml"
我尝试了不同的方法,但到目前为止没有任何效果-

1) 使用
BufferedReader

 BufferedReader reader = new BufferedReader(
        new InputStreamReader( file.getStream() , "UTF-8") );

BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(
                new FileOutputStream(
                        new File( "/storing/path/", "ネットワーキング.xml" )), "UTF-8"));
2) 跟踪此链接 要尝试在Debian中添加区域设置,请执行以下操作:

a) $ sudo aptitude install locales im-config
b) $ sudo dpkg-reconfigure locales -> added en_US.UTF-8 and ja_JP.UTF-8
c) Set the default locale for the system to en_US.UTF-8. 
d) Install some Japanese fonts:
e) $ sudo aptitude install ttf-kochi-mincho ttf-kochi-gothic ttf-sazanami-mincho
然后仅使用ja_JP.UTF-8语言环境进行了尝试

我做错了什么,在哪里


提前感谢。

首先确定问题出在命令提示符还是您的程序上——您可以直接从命令提示符创建并显示带有日语字符的文件吗?或者是否已经正确显示了其他文件?为输入/输出流指定的编码不会影响文件名。您确定您的源文件编码是UTF8并且编译器使用相同的编码吗?如果改用unicode转义语法,您可以避免出现这种问题:
“\u30cd\u30c3\u30c8\u30ef\u30fc\u30ad\u30f3\u30b0.xml”
是的,mata,文件是一个xml文件,我正在使用,文件名是动态出现的。它可以是任何东西。Hi Adrian,我试图通过位(SSH客户端)上传文件但当我试图在Debian控制台上列出该文件时,它显示的是垃圾字符(文件名)。这也可能是我的控制台问题,但我不确定。您要写入的文件系统是什么?