情况是这样的:在日文FreeBSD操作系统上,有一个java程序,需要向硬盘,SD卡和USB设备上写一些文件,写英文名的文件没问题,但是日文汉字名的文件的时候,日文汉字出现了乱码(文件名乱码)。
求助,谁有过类似的经历,请不吝分享一下啊~~~

解决方案 »

  1.   

    不是中文汉字,是日文汉字。GBK应该不可以吧。现在new File("日语汉字")这样出来的文件名都是乱码。
      

  2.   

    现在,使用JNI实现了一下。具体代码如下: Test.java 
    class Test 

    private native int createFile(byte[] fileName); 
    public static void main(String[] args) 

    String fileName = "/mnt/usb/日文字.txt"; 
    //euc-jp or shift_jis 
    createFile(fileName.getBytes("euc-jp"); } } CreateFile.c 
    JNIEXPORT jint JNICALL Java_JNIBridge_createFile(JNIEnv *env, jobject job,jbyteArray fileName) 

    char* inFileName = (*env)->GetByteArrayElements(env, fileName, NULL); 
    int fd; fd = open(inFileName,O_WRONLY|O_CREAT|O_EXCL); 
    close(fd); } 这样作的话,生成的文件名在Linux上面是正常的汉字,但是在windows中显示的文件名却乱码了。 
    高手能不能指点一下啊
      

  3.   

    我遇到过 我们公司是做日本外包的,有2种方法:1是把系统语言该为日文的编码。euc或Shift_JIS。2是出现乱码一般都是系统编码与你的文件编码不一致才造成的。你可以采取把系统编码和你的SD卡,USB设备上的文件改UTF8的形式。
      

  4.   

    2楼的比较让人汗~
    虽然我也不知道正确的日文编码
    但是我知道GBK、GB2312这些编码是中国的国家标准汉字编码