2013-12-16 3 views
8

Il specification dagli stati W3C quanto segue per le forme di enctype=application/x-www-form-urlencoded:Tutti i tipi di riga di riepilogo vengono convertiti in r n quando vengono inviati tramite un modulo html?

Questo è il tipo di contenuto predefinito. I moduli inviati con questo tipo di contenuto devono essere codificati come segue:

1) I nomi ei valori di controllo sono caratteri di escape. I caratteri dello spazio sono sostituiti da +', and then reserved characters are escaped as described in [RFC1738], section 2.2: Non-alphanumeric characters are replaced by % HH ', un segno di percentuale e due cifre esadecimali che rappresentano il codice ASCII del carattere. Le interruzioni di riga sono rappresentate come coppie "CR LF" (ad esempio, '% 0D% 0A').

2) I nomi/i valori di controllo sono elencati nell'ordine in cui appaiono nel documento. Il nome è separato dal valore di =' and name/value pairs are separated from each other by & '.

Ci sono alcuni tipi di terminatori di riga in Unicode. Vale a dire:

LF: Line Feed, U+000A 
VT: Vertical Tab, U+000B 
FF: Form Feed, U+000C 
CR: Carriage Return, U+000D 
CR+LF: CR (U+000D) followed by LF (U+000A) 
NEL: Next Line, U+0085 
LS: Line Separator, U+2028 
PS: Paragraph Separator, U+2029 

Sono tutti questi convertito in CR LF (\r\n)?

risposta

3

Sono tutti convertiti in CR LF (\ r \ n)?

No. Le specifiche HTML4 qui non è chiaro su quello che un'interruzione di linea è, ma ciò che i browser fare, e quello che HTML5 ha continuato a standardise è che solo CR e LF sono coinvolti:

sostituire ogni occorrenza di un "CR" (U + 000D) carattere non seguito da un carattere "LF" (U + 000A) e ogni occorrenza di un carattere "LF" (U + 000A) non preceduto da un carattere "CR" (U + 000D), da un due -CHARACTER stringa costituita U + 000D CARRELLO RETURN "CRLF" (U + 000A) coppia di caratteri

(IE abbastanza non conforme a questa esattamente, come tratta LFCR come singola riga. Ma è vicino basta.)