救命啊~~在日文unix系统上,保存文件的时候文件名乱码问题 情况是这样的:在日文FreeBSD操作系统上,有一个java程序,需要向硬盘,SD卡和USB设备上写一些文件,写英文名的文件没问题,但是日文汉字名的文件的时候,日文汉字出现了乱码(文件名乱码)。求助,谁有过类似的经历,请不吝分享一下啊~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不是中文汉字,是日文汉字。GBK应该不可以吧。现在new File("日语汉字")这样出来的文件名都是乱码。 现在,使用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中显示的文件名却乱码了。 高手能不能指点一下啊 我遇到过 我们公司是做日本外包的,有2种方法:1是把系统语言该为日文的编码。euc或Shift_JIS。2是出现乱码一般都是系统编码与你的文件编码不一致才造成的。你可以采取把系统编码和你的SD卡,USB设备上的文件改UTF8的形式。 2楼的比较让人汗~虽然我也不知道正确的日文编码但是我知道GBK、GB2312这些编码是中国的国家标准汉字编码 基础题,关于调用方法的阶乘 谁有twaver 3.5完整包给我一份 这样更新时间号吗? 请指教这样写代码得优越性 如何定义一个数组,元素为ArrayLis<String>型 jxl生成的EXCEL只支持256列,我要生成更多的列怎么办? 问几道简单的java题,清高手详细解答,谢谢 java对外接口开发 使用FtpClient时怎么定义端口号? jdbc 链接mysql 数据库 求帮忙 急!!!!!! 两个byte类型的变量相加报错,请问怎么解决? path设置
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中显示的文件名却乱码了。
高手能不能指点一下啊
虽然我也不知道正确的日文编码
但是我知道GBK、GB2312这些编码是中国的国家标准汉字编码