Вопрос по java, utf-8, cp1252, android – Как преобразовать строку UTF в ANSI и создать текстовый файл ANSI в SSD с помощью JAVA-ANDROID

3

Я написал приложение для Android в Java, чтобы получить ответы пользователей и сохранить их в файл. Проблема в том, что этот файл сохраняется в utf-8. Конечный пользователь откроет эти файлы в IBM SPSS, приложении для окон, которое может читать файлы только в ANSI (windows-1252).

How do I create files in ANSI code to save in a ssd-card from java-android app?

Я думаю, что я знаю, что для преобразования строк в ANSI я должен использовать:

String unicode = new String(asciiBytes, "windows-1252");

Is that correct?

Мой код для сохранения файла:

File interviewFile = new File(placeOfSDD, fileName);
FileWriter writer = new FileWriter(interviewFile, true);
writer.append(textBody);
writer.flush();
writer.close();

& Quot; TextBody & Quot; является строкой для преобразования в ANSI, а & quot; интервьюFile & quot; это файл, который будет сохранен как ANSI тоже.

Спасибо за помощь!!

Ваш Ответ

1   ответ
9

вам необходимо преобразовать его в соответствующий набор символов.

Для этого используйтеOutputStreamWriter и укажитеCharset.

OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file, true), 
                                                   "windows-1252");
writer.append(textBody);
writer.close();

По поводу вашего первого вопроса:

I think I know that to convert Strings to ANSI I should use:
String unicode = new String(asciiBytes, "windows-1252");
Is that correct?

Дан массив байтов, представляющих символы в «windows-1252»; набор символов, этот код создаст вам соответствующую строку Java (внутренне представлен как Юникод в JVM). этоisn't & quot; преобразование строк в ANSI & quot; ... он делает противоположное: преобразование "windows-1252"; в Юникод.

@sarnold: если вы хотите лучше контролировать процесс кодирования, вы должны использоватьCharsetEncoder, но я никогда не имел.
Есть ли простой способ указать, что делать с символами, которые не могут быть представлены в CP1252?
Отлично, спасибо!
Очень короткий ответ, но острый! Спасибо!! Это решило дело! Я использую это, потому что моя ОС на португальском (Бразилия) языке. Please_Dont_Bully_Me_SO_Lords

Похожие вопросы