Сохранение файла в виде двухбайтового юникода в Java?

Хорошо, я запускаю Java6 (требование к приложению), и мне нужно сохранить файл в формате юникода (без прямого или младшего порядка), только двухбайтовый юникод. Я сделал это:

 BufferedWriter bw = new BufferedWriter(
     new OutputStreamWriter(new FileOutputStream(f), "UTF-8"));
 bw.write(dec+",");
 bw.flush();
 bw.close();

где dec — строка.

Я также пробовал UTF-16 и Unicode. Все они пишут файл Unicode с обратным порядком байтов. Проблема в том, что этот файл читается языком сценариев, который принимает только двухбайтовый юникод и ANSI, но я хочу использовать юникод. http://www.mql5.com/en/docs/constants/io_constants/fileflags

есть идеи как это сделать?


person Mohamed Taher Alrefaie    schedule 04.07.2012    source источник
comment
Это не имеет никакого смысла. В каком порядке вы хотите байты? Вы про БОМ?   -  person SLaks    schedule 04.07.2012
comment
Очевидно, вы не понимаете, что UTF-16 является либо обратным порядком байтов, или прямым порядком байтов, поскольку существует ровно два способа последовательно расположить два байта, о которых вы говорите.   -  person Marko Topolnik    schedule 04.07.2012


Ответы (1)


Делая вывод из вашего вопроса, что проблема заключается в порядке байтов, вы хотите, чтобы UTF-16LE было именем кодировки. Из документов Charset, в которых перечислены обязательные кодировки, которые всегда поддерживаются:

UTF-16LE — шестнадцатибитный формат преобразования UCS, обратный порядок байтов

person Jon Skeet    schedule 04.07.2012