tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
460
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    cojack20 cojack20 ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    47
    Hallo,

    ich lese mit Hilfe des folgenden Codes eine HTML Seite aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
                url = new URL( url_String );
                urlConnection = url.openConnection();
     
                urlConnection.setAllowUserInteraction(false);
     
                InputStream urlStream = url.openStream();
     
                byte b[] = new byte[1000];
                int numRead = urlStream.read(b);
                String content = new String(b, 0, numRead);
                String newContent = "";
     
                while (numRead != -1) {
                    numRead = urlStream.read(b);
                    if (numRead != -1) {
                        newContent = new String(b, 0, numRead);
                        content += newContent;
                    }
                }
     
                urlStream.close();

    naja und dieser Code killt mir alle deutschen Sonderzeichen. Ich verstehe aber nicht wie ich das korrigiere?!

    Kann mir jemand helfen
     

  2. #2
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Ich denke das wird am Charset liegen.

    Du musst aus dem Header der Seite das Charset auslesen (oder einfach ein festes annehmen) und dieses dann für
    Code java:
    1
    
    new String(b, 0, numRead, charSetName);
    benutzen.
    Geändert von zeja (06.08.07 um 15:19 Uhr)
     

  3. #3
    cojack20 cojack20 ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    47
    hallo,

    das funktioniert aber irgendwie nicht

    Code :
    1
    
    String content = new String(b, 0, numRead, "UTF-8");


    Auf jeden Fall bei den deutschen Sonderzeichen.

    Bitte um Hilfe (ich habe auf jeden Fall nur deutsche Sonderzeichen).
     

  4. #4
    cojack20 cojack20 ist offline Mitglied Bronze
    Registriert seit
    Jul 2007
    Beiträge
    47
    Doch geht man muss es natürlich bei beiden Strings ersetzen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    url = new URL( url_String );
                urlConnection = url.openConnection();
     
                urlConnection.setAllowUserInteraction(false);
     
                InputStream urlStream = url.openStream();
     
                byte b[] = new byte[1000];
                int numRead = urlStream.read(b);
                String content = new String(b, 0, numRead, "UTF-8");
                String newContent = "";
     
                while (numRead != -1) {
                    numRead = urlStream.read(b);
                    if (numRead != -1) {
                        newContent = new String(b, 0, numRead, "UTF-8");
                        content += newContent;
                    }
                }
     
                urlStream.close();

    DAS funktioniert !!

    SUPER DANKE
     

  5. #5
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Trotzdem solltest du einen StringBuilder bzw StringBuffer benutzen um die Strings zu verketten. Diese mit + zu verketten ist einfach zu langsam.

    Und anstatt alles selbst so auszulesen könntest du es auch mit einem BufferedReader probieren:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    
            BufferedReader in = new BufferedReader(
                                    new InputStreamReader(
                                    urlConnection.getInputStream()));
            String inputLine;
     
            while ((inputLine = in.readLine()) != null) {
                System.out.println(inputLine);
            }
     

Ähnliche Themen

  1. HTML-Sonderzeichen
    Von Smily0412 im Forum Java
    Antworten: 1
    Letzter Beitrag: 14.11.07, 11:59
  2. HTML Sonderzeichen maskieren
    Von Billie im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 29.03.07, 12:57
  3. Xml lesen mit Sonderzeichen
    Von LordDeath im Forum .NET Datenverwaltung
    Antworten: 2
    Letzter Beitrag: 09.06.06, 13:55
  4. Sonderzeichen in der EditBox nach lesen einer Datei
    Von PuMi2006 im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 18.05.06, 15:21
  5. HTML-Sonderzeichen umwandeln?
    Von Create im Forum PHP
    Antworten: 5
    Letzter Beitrag: 10.05.02, 17:30