- Forum-Beiträge: 10
09.02.2014, 21:58:32 via Website
09.02.2014 21:58:32 via Website
dank des Forums habe ich echt schon eine Menge gelernt. Nach dem ich erfolglos probiert habe über JDBC-Treiber eine Datenbankverbindung aufzubauen, habe ich den einen Rat aus dem Forums befolgt und einen kleinen PHP-Webserver geschrieben, der die Datenbankverbindung für mich erstellt. Da ich dabei jedoch auf viele Codefragmente von Onkel Google zurückgegriffen habe, funktioniert alles noch nicht so wie ich es mir wünsche.
Ich schaffe es zwar Strings aus meiner Datenbank auszulesen aber leider werden hier die Sonderzeichen nicht bzw. durch Fragezeichen dargestellt.
Ich versuche seit heute morgen einige Ratschläge aus dem Internet umzusetzen aber ohne Erfolg. Ich hoffe jemand kann mir weiterhelfen.
1. Datenbank Kollation auf UTF-8 gesetzt
2. in meiner php folgende Abfrage als erstes durchführen
Wenn ich das PHP-Skript in ANSI konvertiere, bekomme ich über den Webbrowser die richtigen Sonderzeichen also ä,ü,ä zurück, konvertiere ich in UTF-8 bekomme ich schwarze Rauten mit Fragezeichen, die auch über meine Emuator in Eclipse angezeigt werden.
Ich würde daher meine PHP-File in ANSI kovervieren und vermute, dass ich im JAVA Code noch eine konvertierung durchführen muss.
meine PHP-File sieht folgendermaßen aus:
2$con=mysqli_connect("localhost","dbuser","pw","dbname");
3if (mysqli_connect_errno($con))
4{
5 echo "Failed to connect to MySQL: " . mysqli_connect_error();
6}
7$id = $_GET['id'];
8$spalte = $_GET['spalte'];
9mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
10
11$result = mysqli_query($con,"SELECT $spalte FROM Daten where ID='$id'");
12$row = mysqli_fetch_array($result);
13$data = $row[0];
14if($data){
15echo $data;
16}
17mysqli_close($con);
18?>
folgenden JAVA-Code nutze ich zum parsen:
2
3 try{
4
5 String link = "domain/skript.php?id="+id+"&spalte="+spalte;
6 URL url = new URL(link);
7 HttpClient client = new DefaultHttpClient();
8 HttpGet request = new HttpGet();
9 request.setURI(new URI(link));
10 HttpResponse response = client.execute(request);
11 BufferedReader in = new BufferedReader
12 (new InputStreamReader(response.getEntity().getContent()));
13
14 StringBuffer sb = new StringBuffer("");
15 String line="";
16 while ((line = in.readLine()) != null) {
17 sb.append(line);
18 break;
19 }
20 in.close();
21 return sb.toString();
22 }catch(Exception e){
23 return new String("Exception: " + e.getMessage());
24 }
25 }
Ein anderes Problem habe ich bei einer anderen Funktion die einen Integer aus der Datenbank lesen soll:
2
3 try{
4
5 String link = "Domain/maxid.php";
6 URL url = new URL(link);
7 HttpClient client = new DefaultHttpClient();
8 HttpGet request = new HttpGet();
9 request.setURI(new URI(link));
10 HttpResponse response = client.execute(request);
11 BufferedReader in = new BufferedReader
12 (new InputStreamReader(response.getEntity().getContent()));
13
14
15 StringBuilder sb = new StringBuilder();
16 String line = null;
17 while ((line = in.readLine()) != null) {
18 sb.append(line);
19
20 break;
21 }
22 in.close();
23 return sb //-------------------------------------------------------------------------------> hier bekomme ich einen Fehler. Wie schaffe ich es als Rückgabewert ein Integer zu liefern.
24 }catch(Exception e){
25 //return null;
26 }
27 }
Ich würde mich sehr freuen wenn ihr mir weiterhelfen könntet.
Viele Grüß
Alex
— geändert am 09.02.2014, 22:11:01
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.