Matthias Apsel: utf8_encode, aber \n, \r\n, \r sollen erhalten bleiben

Beitrag lesen

Om nah hoo pez nyeetz, Sven Rautenberg!

Moin!

In einem HTML-Formular befindet sich ein textarea-Element, dessen Inhalt auch Zeilenumbrüche enthalten dürfen.

Ok.

Der Inhalt wird in einer SQL-Datenbank gespeichert, so dass aus den Zeilenumbrüchen beispielsweise "\r\n" wird.

Nein, nicht IN der DB. Da stehen die Bytes "13" und "10" drin, also die ASCII-Zeichen für den Windows-Zeilenumbruch.

Der Code war unvollständig: nach mysqlrealescape und utf8_decode zeigt mir zumindest phpmyadmin bei sql-Operationen "\r\n" an.

Wenn dieses Formular wieder aufgerufen wird, wird per

echo "foo.value = '" . utf8_encode($bar) . "';";

Im HTML-Kontext fehlt da definitiv das Escaping.

Auch das ist im Original drin.

Textareas füllt man, indem man den Inhalt zwischen öffnendem und schließendem <textarea>-Tag platziert und html-escaped.

JA!eins11

foo.value = 'ein

Zeilenumbruch';


>   
> Javascript! Kontextwechsel nicht beachtet!  
> > PS: Kontextwechsel sind beachtet  
>   
> Nein!  
  
Da die Fragestellung selbst einen Kontextwechsel darstellt, ...  
  
Matthias

-- 
1/z ist kein Blatt Papier.  
![](http://www.billiger-im-urlaub.de/kreis_sw.gif)