Kodowanie w Javie ?

0

W sumie to nie wiem czemu tu jeszcze zakladam tematy bo jeszcze chyba nigdy nie dostalem dobrej odpowiedzi _, ale co mi tam:

  1. Jak zrobic zeby kody zrodlowe stron www sciagane za pomoca javy nie tracily polskich liter ?
  2. Jaka jest funkcja zeby zrefreszowac jTextArea w desktop application ( tzn skasowac cala jego zawartosc ) ?
    pozdro
0

Prawdopodobnie coś jest z kodowaniem skaszanione. Ale jak pomóc, to nie wiem :)
2.
jTextArea.setText("");
Powinno działać

Pozdrawiam

0

Sprawdziłem, pytałeś dwa razy. Oba pytanie bardzo nieprecyzyjne - odpowiedzi dostałeś (IMHO odpowiednie do pytań). Sposobu zadawania pytań nie zmieniłeś, co to znaczy

sciagane za pomoca javy

, jakiego sposobu ściągania użyłeś ?

0

bogdans, nie masz racji.
Potrzebuje jakiegokolwiek sposobu...

0
  1. Nie wiem ale wiem ze musi byc UTF-8:)
0

@kicha, chyba nie masz racji. Napisałem programik testowy

        try
        {
            url=new URL("Adres_plikuDoPobrania");
            conn=url.openConnection();
            conn.connect();
            in=new InputStreamReader(conn.getInputStream(),charsetName);
            if(buforuj)
            {
                dane=new BufferedReader(in);
                while ((linia=dane.readLine())!=null)
                {
                    bufor.append(linia+"\n");
                }
                FileWriter f=new FileWriter("Test.html");
                f.write(bufor.toString());
                f.close();
            }
            else
            {
                char[] bajty=new char[40000];
                in.read(bajty,0,40000);
                FileWriter f=new FileWriter("Test.html");
                f.write(bajty);
                f.close();
            }
        }

przy żadnej wartości zmiennej charsetName (również przy "UTF-8") na komputer windowsowy nie ściągnął się plik z polskimi literami (jeżeli oryginalny plik był w standardzie
iso-8859-2)
pozdrawiam

0

Masz racje to nie UTF-8 tym razem choc najczesniej to z tym mam problem:P
To prowidlowa odpowiedz, nietsty nie mam czasu na jej zrozumienie:)

import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

import java.io.BufferedReader;


public class Tutor {
	public static void main(String[] args) {
	try   {
			
	    StringBuilder sb = new StringBuilder();
	    URL url=new URL("http://www.jtz.org.pl/#hot");
			
            InputStream conn=url.openStream();


            InputStreamReader in=new InputStreamReader(conn,"iso-8859-2");
            String linia="";
            BufferedReader dane=new BufferedReader(in);
            while ((linia=dane.readLine())!=null) {
                	sb.append(linia+"\n");
            }
                
            FileWriter f=new FileWriter("Test.html");
            f.write(sb.toString());
            f.close();

        } catch (Exception e) {
			System.err.println(e.getMessage());
	}
	}
}

Pozwolielm sobie wykorzystac kod ktory napisales.

P.S. Nastepnym razem proeponuje proeblm wsadzic wlasnie do takiego static maina to szybciej bedzie mozna to rozpracowac:)

Sorki zapomnailem napisac ze to w javie 1.5:). Glownie chodzi o stringBuildera:)

0

@Kicha przecież napisałem, że mój program nie ściąga dobrze przy żadnej wartości zmiennej charsetName, "iso-8859-2" było pierwszą próbowaną wartoscią.
pozdrawiam

0

No to nie wiem ten program co napisalem u mnie dziala bez problemu:(

Wazne jest otwieranie strumienia przynajmniej tak mi sie wydaje. Tak jak ty napisales mi nie dzialalo zmiana na ten kod dala efekt tlyko dalem
InputStream conn=url.openStream();

0

A mi nie działa(Linux).

Natomiast u mnie wystarczy:

  1. new InputStreamReader(conn,"iso-8859-2");
  2. W kodzie strony zmienić <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    na <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
0

@Kicha, zmieniłem na openStream(), nadal nie działa. Spróbuj pobrać ten plik:
http://atos.amu.edu.pl/~bogdan/javax.html
pozdrawiam

0

Jesli chodzi o plik to dziala.

Byc moze chodzi o zapis tego pliku w innym kodowaniu tzn. w czasie edycji zostalo zapisany jako np win-1250 albo jesli linuch lub macos to utf-8 a teraz jest probowa "rozkodowania":) go w iso-8859-2.

Ne tej stronce jest fajne porownanie obu kodowan win-1250 i iso.
http://pl.wikipedia.org/wiki/Windows-1250

0

Jest jeszcze jedna mozliwosc. Upewnić się, że nie zachodzi konflikt między deklaracją w dokumencie a informacją stosowaną przez serwer, ponieważ ustawienia serwera mają priorytet nad deklaracjami dokumentu.

0

1.Tak się składa, że wiem w jakim formacie plik jest zapisany (iso-8859-2).
2.Gdyby wina była po stronie formatu lub ustawień serwera, to działałoby tak samo (dobrze lub źle) u mnie i u Ciebie.
pozdrawiam

0
  1. W sumie fakt:)

Rozumiem ze kombinowales juz z UTF-8 na rozne sposoby?
Hmm. No to juz nie wiem moge powiedziec tylko ze robie to na win xp, ale pomocne to to nie jest:(

0
  1. Ale jesli rozne rzeczy juz widzialem zwiazane z kodowaniem:)
0

Jak zamiast
InputStreamReader in=new InputStreamReader(conn,"iso-8859-2");

dam

InputStreamReader in=new InputStreamReader(conn,"windows-1250");

to otwierając plik Test.html w przeglądarce wyświetla ogonki, ale jak otworzę w notatniku to tam są krzaki zamiast niektórych polskich liter. Hmm dziwne to trochę.

Kod kichy działa u mnie tak, że jak otworze Test.html w notatniku są polskie znaki ale w przeglądarce już nie.

Może te moje wypociny coś dadzą. Powodzenia.

0

A próbowaliście mojej metody, tzn. ściągnąć jako "iso-8859-2", ale później w pliku zamienić "charset=iso-8859-2" na "charset=UTF-8" ?

0
__krzysiek85 napisał(a)

A próbowaliście mojej metody, tzn. ściągnąć jako "iso-8859-2", ale później w pliku zamienić "charset=iso-8859-2" na "charset=UTF-8" ?

U mnie taki myk nic nie daje, nadal krzaki.

0
__krzysiek85 napisał(a)

A próbowaliście mojej metody, tzn. ściągnąć jako "iso-8859-2", ale później w pliku zamienić "charset=iso-8859-2" na "charset=UTF-8" ?

Ale za to zmiana na windows-1250 już działa. Zawsze to coś. ;-)

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