2012-07-04 3 views
1

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

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

где Декабре является строка.

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

Любая идея, как это сделать?

+0

Это не имеет никакого смысла. Какой порядок вы хотите использовать в байтах? Вы говорите о спецификации? – SLaks

+3

По-видимому, вы не понимаете, что UTF-16 ** либо ** big-endian **, либо ** little-endian, так как существует ровно два способа последовательно упорядочить два байта, о которых вы говорите. –

ответ

4

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

UTF-16LE - Шестнадцать битого UCS Transformation Format, обратный порядок байт