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();
но это не сработает.