JCIFS中存在某些非ascii字符的问题

时间:2016-05-02 09:05:25

标签: java samba jcifs

我正在使用JCIFS来访问一个包含很多日文名称的文件共享,当我在其中的字符时遇到问题

例如:

路径人事部/要员·コスト管理课/

第一部分没问题,但第二部分引起了问题。这可能与“·”可以使用斜线输入的事实有关,但我不确定。我试过逃避角色,但似乎没有解决问题。你有什么可能导致它的线索吗?

1 个答案:

答案 0 :(得分:4)

查看 heenenee 评论,通过服务器文件系统走一走,检查真正的共享名称是什么。我正在测试使用带有Java源(UTF-8)的Samba服务器(UTF-8)中的中间点和日语名称访问网络共享时没有问题。

import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.junit.Test;

import jcifs.smb.SmbFile;
import junit.framework.TestCase;

public class JCifstest extends TestCase {

    @Test
    public void testJCifs() throws IOException {

        System.out.println(Charset.defaultCharset());

        SmbFile smbFile = new SmbFile("smb://myuser:mypass@myserver/basepath/人事部要員・コスト管理課/test.txt");
        File destFile = new File("/tmp/" + smbFile.getName());
        FileUtils.writeByteArrayToFile(destFile, IOUtils.toByteArray(smbFile.getInputStream()));
        assertEquals("content", FileUtils.readFileToString(destFile));
    }
}