Kodowanie pliku - BufferedWriter(FileWriter)

0

Na początek pozwolę sobie opisać co robie, wtedy będzie jasne co nie działa i o jaki efekt końcowy mi chodzi.

  1. utworzony wcześniej plik.doc zapisuje w Microsoft Word jaki dokument XML i otrzymuje plik.xml
  2. uruchamiam aplikacje której fragment kodu jest poniżej
  3. jak chce otworzyć otrzymany plik2.doc MS Word wyrzuca mi błąd "Nie można otworzyć pliku, ponieważ są problemy z jego zawartością / Illegal xml character. Error location: (...)" i plik się nie otwiera
  4. dopiero jak otworze plik2.doc w notatniku i wybiorę w 'zapisz jako' z kodowaniem UTF-8, dopiero wtedy plik może być normalnie otwarty
  5. ale i tak jak otwieram plik2.doc to zamiast polskich literek widzę jakieś dziwne znaczki

Moje pytanie: Czy ktoś wie jak zrobić żeby plik, który tworze był prawidłowo kodowany i żeby tekst wpisywany przez formularz w przeglądarce był wpisywany prawidłowo a nie jako krzaczki ???

z góry dzięki

try {
            File file = new File("D:\\plik.xml");
            File filew = new File("D:\\plik2.doc");
            BufferedReader reader = new BufferedReader(new FileReader(file));
            BufferedWriter writer = new BufferedWriter(new FileWriter(filew));
            
            String s= null;
            
            while((s = reader.readLine()) != null ) {
                
                s= s.replaceAll("tekst1 ", "tekst2 - coś, cień, źle");
                    
                writer.write(s);
            }
            
            reader.close();
            writer.close();
        }catch (ArrayIndexOutOfBoundsException e){
            System.out.println("Usage: java ReadFile filename\n");
        }catch (IOException e){
            e.printStackTrace();
        }
0

dzięki :)
[browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1