Android上的文件名中的外来字符

时间:2011-08-26 11:44:07

标签: android sd-card createfile

File outputFile = new File(path, clickedKey+".txt");
OutputStream fos = new FileOutputStream(outputFile);
fos.write(data.getBytes());
fos.close();

这段代码在路径不包含如下字符时起作用:“ąóźżę”(来自波兰语的特殊字符)。 如果路径包含其中任何一个fos.write有效,但没有效果(新文件不是使用“外部”路径名创建的,但路径存在)。 我的问题是:我该怎么做才能解决它?

像“Astro”,“文件管理器”等文件管理器应用程序可以毫不费力地使用这些字符。

我也试着这个:

Charset charset = Charset.forName("UTF-8");
CharsetEncoder encoder = charset.newEncoder();
CharsetDecoder decoder = charset.newDecoder();

ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(clickedKey+".txt"));
CharBuffer cbuf = decoder.decode(bbuf);
String s = cbuf.toString();

bbuf = encoder.encode(CharBuffer.wrap(path));
cbuf = decoder.decode(bbuf);
String path_s = cbuf.toString();

File outputFile = new File(path_s, s);
OutputStream fos = new FileOutputStream(outputFile);
fos.write(tab.getBytes());
fos.close();

但它也不起作用。

2 个答案:

答案 0 :(得分:2)

当我的手机通过ADB连接并且我使用DDMS检查新文件时,“外部”路径上没有任何文件。但实际上,文件都在手机中!

我查了一下,文件管理员直接在我的手机上:) 很奇怪。但我解决了这个问题。

答案 1 :(得分:0)

你检查了编码吗?在eclipse中:编辑>设置编码> utf-8或16