# \n funktioniert nicht immer



## Jigga (22. Jun 2011)

hallo leute,

ich habe ein kleines programm, dass einen thread in einem forum mit einem text erstellt.
dabei greife ich auf die textarea zu und schreibe den text via "setTextContent(message);"
meine message variable ist ein String der ungefähr so aussieht:

```
String message = "test:" + variable1 + "\n" + "weitergehts:"  + varibale2 + "\n" + "und so weiter."
```

Wenn ich das programm selber benutzer gibt es keine problem. bei anderen benutzern fehlt allerdings der zeilenumbruch und ich weiß einfach nicht woran es liegt.

Ich habe die deutscha java version. andere benutzer haben auch die aktuellste java version,ABER in einer anderen sprache!

was kann ich dagegen tun?gibt es eine alternative für den zeilenumbruch?


----------



## Maschine (22. Jun 2011)

Du kannst es mit html lösen, also:

```
String message = "<html>" + "test:" + variable1 + "<br>" + "weitergehts:"  + varibale2 + "<br>" + "und so weiter." + "</html>"
```

müsste so gehen.


----------



## thewulf00 (22. Jun 2011)

Wenn der String einfach auf das StdOut geht, dann kommt es aufs Betriebssystem an. Probier doch spaßeshalber mal "\n\r" und sag, ob es besser geworden ist.


----------



## Jigga (22. Jun 2011)

Maschine hat gesagt.:


> Du kannst es mit html lösen, also:
> 
> ```
> String message = "<html>" + "test:" + variable1 + "<br>" + "weitergehts:"  + varibale2 + "<br>" + "und so weiter." + "</html>"
> ...



ich denke mal wegen "HTML code is Off" klappt das nicht,kriege dann den text mit den HTML tags drinne.

@ wulf: kanns gerade leider nicht testen, da mir eine testperson fehlt 
was genau macht denn der befehl?


----------



## bone2 (22. Jun 2011)

```
System.getProperty("line.separator")
```
statt 
	
	
	
	





```
\n
```

\n ist new line
\r ist carriage return, wagen rücklauf
wie bei der schreibmaschine: die rolle eine zeile hochdrehen und schreibwagen wieder nach vorne schieben
windows brauch üblicherweise beides, linux zb nur new line

das system.get nimmt immer das richtige je nach umgebung


----------



## thewulf00 (22. Jun 2011)

Ich meinte damit, ersetze "\n" durch "\n\r".
Aber die Variante von bone2 ist noch besser!


----------



## nrg (22. Jun 2011)

wenn dann schon \r\n 

edit @ara: dem habe ich auch nicht widersprochen


----------



## ARadauer (22. Jun 2011)

System.getProperty("line.separator")  wie bone gesagt hat, ist die sicherste Lösung


----------



## Jigga (22. Jun 2011)

ARadauer hat gesagt.:


> System.getProperty("line.separator")  wie bone gesagt hat, ist die sicherste Lösung



war ein guter ansatz,aber bei den jeweiligen personen hat es leider trotzdem nicht funktioniert! :/
vielleicht eine info: meine testperson hatte eigentlich das selbe OS wie ich: Win7 64Bit.

hat jemand noch eine Idee,was da schief laufen könnte?


----------



## despikeexd (23. Jun 2011)

Mal so als anmerkung : es gibt Java nicht in verschiedenen Sprachen. Java ist eine Programmiersprache und wie die meisten in Englisch gehalten. Das einzige was an Java Deutsch sein könnte wäre ein Language-Pack was die Umgebung von Java in ihrere Darstellung ändert *also z.B. das Control-Panel in der jeweiligen Systemsprache*.

Was dein Problem ist :
Es reicht nunmal nicht in einem HTTP-POST ein schlichtes "\n" zu verwenden. Du musst den gesamten Inhalt vorher durch einen URLEncoder jagen damit dieser den String dann auch W3C konform zum Server schickt. Warum es trotzdem geht verschweigt sich meiner relationalen Auffassungsgabe da eigentlich so nicht möglich .. aber wie auch immer.

PS : unter Windows heißt es \r\n ... und nicht \n\r ... *so viel FAIL alter -.-'*


----------



## Jigga (23. Jun 2011)

despikeexd hat gesagt.:


> Mal so als anmerkung : es gibt Java nicht in verschiedenen Sprachen. Java ist eine Programmiersprache und wie die meisten in Englisch gehalten. Das einzige was an Java Deutsch sein könnte wäre ein Language-Pack was die Umgebung von Java in ihrere Darstellung ändert *also z.B. das Control-Panel in der jeweiligen Systemsprache*.
> 
> Was dein Problem ist :
> Es reicht nunmal nicht in einem HTTP-POST ein schlichtes "\n" zu verwenden. Du musst den gesamten Inhalt vorher durch einen URLEncoder jagen damit dieser den String dann auch W3C konform zum Server schickt. Warum es trotzdem geht verschweigt sich meiner relationalen Auffassungsgabe da eigentlich so nicht möglich .. aber wie auch immer.
> ...




naja gut,aber das wäre halt für mich die einzige logische erklärung gewesen 

eine andere info am rande: ich greife auf die seite via htmlunit zu,sprich ich simuliere einen browser, und hole mir dann meine textarea,diese wird dann einfach nur gefüllt.
dem entsprechend übermittle ich das ganze nicht direkt mit dem HTTP POST.


----------

