Encodingprobleme in java in verbindung mit dem Apatche Http Client

Dieses Thema im Forum "Support & Discussion" wurde erstellt von susesKaninchen, 24. September 2017.

  1. susesKaninchen

    susesKaninchen New Member

    Registriert seit:
    3. Juli 2017
    Beiträge:
    21
    Zustimmungen:
    13
    Punkte für Erfolge:
    3
    Hallo, ich habe ein Programm welches aus einer txt etwas außlesen soll und dann in einem Post senden soll, leider klappt das nicht richtig.
    Die txt beinhaltet:
    ιcн вιη Peter

    Das was raus kommt ist:
    ιcн вιη

    Gut also ist das encoding falsch.

    Hier meine benutzen Code sachen.

    (eingekürtzt)
    Code (Java):
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    import java.util.regex.MatchResult;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;

    public class TextBearbeitung {
        private String text = "";
        private Random r = new Random();

        public String getText() {
            return text;
        }
        public void readTextFile(String pfad) {
            try {
                File fileDir = new File(pfad);
                BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(fileDir), "UTF8"));

                String zeile = "";
                do {
                    zeile = in.readLine();
                    if (zeile == null) {
                        break;
                    }
                    this.text += zeile + "\n";
                } while (zeile != null);
                in.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    Dann das senden mit der funktion:

    Code (Java):
    public String[] POSTSpecialMS(String url, String post) throws IOException {
            String[] ret = new String[2];
            ret[0] = "";
            final HttpPost Post = new HttpPost(url);
            StringEntity params = new StringEntity(post, "UTF-8");
            params.setContentType("application/x-www-form-urlencoded");
            Post.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
            Post.addHeader("Accept-Encoding", "gzip,deflate,br");
            Post.addHeader("Accept-Language", "de-DE");
            Post.addHeader("X-Requested-With", "XMLHttpRequest");
            Post.addHeader("Accept", "application/json, text/javascript, */*; q=0.01");
            Post.addHeader("DNT", "1");

            Post.setEntity(params);
            final HttpResponse response = this.client.execute(Post);
            Header[] s = response.getAllHeaders();
            try {
                for (Header b : s) {
                    ret[0] += b.toString() + "\n";
                    // System.out.println(b.toString());
                }
            } catch (Exception e) {
                ret[0] = "";
            }
            final BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            final StringBuilder sb = new StringBuilder();
            String line = "";
            while ((line = rd.readLine()) != null) {
                sb.append(line);
            }
    Dazwischen wird der Text übergeben mit:

    Code (Java):
    public boolean senden(String ID, String Message) {
            try {
                HttpB.FileWrite(client.GET(domain + "/ajax/messages?id_user_sender=" + ID), "SendenVorbereiten");
                Thread.sleep(Message.length() * 200);
                System.out.println(
                        "Warte " + ((Message.length() * 200) / 1000) + " Sekunden bis die nachricht abgesendet wird.");
                String[] response = client.POSTSpecialMS(domain + "/ajax/addmessage",
                        "id_user=" + ID + "&message=" + Message + "&mobile_phone=");
                HttpB.FileWrite(response[1], "Senden");
                if (response[1].contains("return\":true")) {
                    return true;
                }
            } catch (Exception e) {
                e.printStackTrace();
                return false;
            }
            return false;
        }
     
  2. susesKaninchen

    susesKaninchen New Member

    Registriert seit:
    3. Juli 2017
    Beiträge:
    21
    Zustimmungen:
    13
    Punkte für Erfolge:
    3
    Ok erledigt, der code so funktioniert 100% wenn man es in der console außgeben lassen will sollte man eclips umstellen indem mann auf
    Window
    Preferences
    General
    Workspace
    und dann ganz unten von Cp1252 auf UTF-8 stellen

    Mein fehler war das ich eine identische Einleserutine includiert hatte auß einem anderen Projekt
     

Diese Seite empfehlen

Die Seite wird geladen...