È consueto omettere ;charset="utf-8"
quando il tipo di contenuto è application/x-www-form-urlencoded
?application/x-www-form-urlencoded e charset = "utf-8"?
In particolare, quando si utilizza accept-charset="utf-8"
in un tag form, mi aspetto che qualche indicazione indichi che utf-8 viene utilizzato nelle intestazioni, ma non lo vedo.
Ecco il mio semplice test in Chrome. La pagina del modulo è:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<form method="POST" action="printenv.cgi" accept-charset="utf-8">
Your name:
<input name="name" type="text" size="30">
</form>
</body>
</html>
E le intestazioni per la richiesta generata sono:
POST /printenv.cgi HTTP/1.1
Host: ...:8000
Connection: keep-alive
Content-Length: 19
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Origin: http://...:8000
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://...:8000/utf8-test.html
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Qual è la convenzione per specificare come i valori dei parametri sono codificati sotto forma?
Oh, curiosità interessante che non sapevo: * "Se il nome della voce è" _charset_ "e il suo tipo è" nascosto ", sostituiscilo con charset."* – deceze
Nota che stai eseguendo il collegamento alla specifica ** HTML 5 **, ma l'HTML in questione utilizza invece ** HTML 4 **. Ecco l'algoritmo di invio del modulo per HTML 4: http: //www.w3 .org/TR/1999/REC-html401-19991224/interact/forms.html # h-17.13, sebbene non parli della gestione dei charset –
Remy: il doctype non influenza ciò che i browser fanno rispetto alla codifica dei moduli. –