# Java <-> php-Skript funktioniert nur unter Linux



## Crymes (16. September 2013)

Hallo,
Ich habe ein Java Programm, dass mir Strings an ein .php Skript via POST sendet und dieses dann damit eine Datei erstellt.
Unter Ubuntu funktioniert alles wunderbar, nur unter Windows (XAMPP) klappts nicht.
Ich vermute dass es an folgendem Code liegt:


```
String daten = "String1=" + URLEncoder.encode("Irgendwas", "UTF-8") + "&" +  
					  	  "String2=" + URLEncoder.encode("Irgendwasanderes", "UTF-8") + "&" + usw.
```

Kann es sein, dass Windows nicht mit UTF-8 zurechtkommt?


----------



## ushnok (16. September 2013)

Windows kommt sehr wohl mit UTF-8 zurecht. Der Fehler muss wo anders liegen. Bereits den Error Log gecheckt?


----------



## Crymes (16. September 2013)

Ich bräuchste so eine Art Fehlerausgabe von php.
In Linux wird eine Datei namens gut.abc angelegt. Ich übermittle gut als String, den Inhalt als String und den Dateipfad als String.
In Windows stimmt der Dateipfad, aber die Datei heißt nur gut, sie hat keine Endung und ist leer. Per echo werden mir aber die korrekten Werte der Strings zurückgegeben.
Es muss irgendwas mit dem xml Inhalt zu tun haben den mir der Java xmlEncoder erstellt, denn nehme ich als Inhalt z.B. "Hund" funktioniert auch unter Windows alles bestens ;(

Wenn ich aber das gleiche Skript nehm und es unter Wimdows mit dem Dateiinhalt fütter, der in der Datei war, die unter Linux erstellt wurden war, funktioniert auch alles ;(

Ich hab echt kein Plan was da schief läuft.


----------



## ushnok (16. September 2013)

Du nutzt doch XAMMP als webserver, dann schau in die php error logs rein, da steht drin was schief gelaufen ist.


----------



## Crymes (16. September 2013)

Die php Errorlogs sind leer bzw. ich jab sie gelöscht um frische zu bekommen, es werden aber keine mehr erstellt.


----------



## Crysis nerd (16. September 2013)

Dann speicher doch erstmal komplett var_dump($_POST) und var_dump($_GET) in einer datei. und dann vergleichste zwischen windows und linux. Oder zeigst es uns erstmal.
Alternativ, da PHP ja scheinbar keinen Fehler wirft, schreib  mal ganz an den Anfang: error_reporting(E_ALL);


----------



## milesdavis (17. September 2013)

Verwendest du jeweils dieselben php-Versionen?


----------



## Crymes (17. September 2013)

Unter Windows das aktuellste XAMPP und unter Ubuntu die Standardpakete.
Die unter Linux müsste dann glaub ich älter sein.


----------



## Crymes (18. September 2013)

So, ich hab mir mal die var-dump Ausgabe angeschaut, es gibt tatsächlich einen Unterschied:

Der String, der in der Variable für denj Inhalt der Datei ist, ist unter Windows 4 Zeichenlänger. 
Der Unterschied scheint zu sein, dass das Wort "höhe" (so wird es unter Linux ausgegeben) unter Windows so zurückkommt: ein kleines "h", ein A mit einer geschwungenen Linie obendrauf, ein "f", ein A mit einem Dächchen, ein Zeichen dass wie ein umgekehrtes P aussieht und normalerweise vor jeder Textzeile steht, und ein "he".


----------



## Crymes (18. September 2013)

Ich hab jetzt endlich das Problem gefunden!
Windoof verträgt keine Doppelpunkte im Dateinamen, deshalb konnte die Datei auch nicht gefüllt werden.


----------



## DarkMo (18. September 2013)

sind ja auch für pfade reservierte zeichen


----------

