Tworzenie pliku o kodowaniu ISO-8859-2 help

0

Witam.

Od dwóch dni siedzę nad problemem, którego nie mogę rozwiązać. Chciałbym zwrócić się do was o pomoc. Otóż... Tworze aplikacje która pobierze kod html z serwera, potem wczyta do jTextArea i wyśle na serwer. O ile metody wysłania i pobierania z serwera mam opracowane, to problem jest w kodowaniu, cała operacja wygląda tak:

  1. pobieram plik z serwera na dysk (i już w tej chwili Tworzy mi plik w kodowaniu UTF-8)
  2. Wczytuje zawartość do TextArea
  3. tutaj użytkownik będzie miał możliwość edycji
  4. zapisuje plik do nowego pliku i tu również mam (UTF-8)
  5. wysyłam plik na serwer również w UTF-8

I teraz do Was kieruje mój problem jak utworzyć plik o kodowaniu ISO-8859-2. Największym problem jest utworzenie pliku pliku w pkt. 4.

Poniżej moje metody:

private void zapisz()
{

                FileOutputStream wy = null;
		String tekst = jTextArea1.getText ();
		try {
			wy = new FileOutputStream(plik);
			wy.write(tekst.getBytes());
		} catch (IOException e) {
		} finally {
			try {
				wy.close();
			} catch (IOException e2) {
			}
		}

		}

W tej metodzie zapisuje tekst z pola tekstowego do pliku, niestety w UTF-8, co zrobić??

0

Writer out = new OutputStreamWriter(new FileOutputStream("plik.html), "ISO-8859-2"));

Writera mozesz owrapowac w buforowanie itp, ale to juz pewnie znasz.

0
pikseloza napisał(a)

Writer out = new OutputStreamWriter(new FileOutputStream("plik.html), "ISO-8859-2"));

Writera mozesz owrapowac w buforowanie itp, ale to juz pewnie znasz.

Próbuje walczyć, ale coś mi nie wychodzi, możesz mi bardziej pomóc? Czytałem trochę, wstawiałem

private void zapisz()
{
                FileOutputStream wy = null;
		String tekst = jTextArea1.getText ();
		try {
			//wy = new FileOutputStream(plik);
                Writer out = new OutputStreamWriter(wy=new FileOutputStream("plik.ini"), "ISO-8859-2");

		wy.write(tekst.getBytes());
		} catch (IOException e) {
		} finally {
			try {
				wy.close();
			} catch (IOException e2) {
			}
		}

		}
0

Nie poluguj sie strumieneim tylko Writerem - to on jest odpowiedzialny za kodowanie. Zwyczajnie wywolaj out.write(tekst) i juz.
Jesli nie chcesz uzywac witera (widze ze uzywasz metode tekst.getBytes()), to mozesz zrobic z file output streamem i wywolac tekst.getBytes("ISO-8859-2") - gdy tego nie robisz uzywane jest domyslne kodowanie, a nie mam zamiaru nawet zgadywac na jakim systemie jestes i jakie masz ustawione kodowanie.
Sposob z writerem to "ten wlasciwy", poniwaz od zabaw z tekstem jest wlasnie writer, a streamy sa od bajtow.

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