2009-07-08 15 views
6

Avevo usato questo nel mio codice per impostare il set di caratteri, ma a IE non piaceva. Qualche ragione per cui?context.Response.Charset = Encoding.UTF8.ToString();

context.Response.Charset = Encoding.UTF8.ToString();

Alla fine ho dovuto impostarlo su context.Response.ContentType = "application/json; charset = utf-8" o context.Response.Charset = "utf-8"; anziché. Non sono sicuro di cosa Encoding.UTF8.ToString(); sarebbe stato utilizzato per se IE non può prenderlo

risposta

5
Encoding.UTF8.ToString(); 

non restituisce

"utf-8" 

Esso restituisce

"System.Text.UTF8Encoding" 

che è il nome del tipo che Encoding.UTF8 vita in.

Il nome del tipo (o definizione di classe) viene sempre restituito da Object.ToString() se non vi è alcun override m ethod nella classe (che è il caso qui).

25
Context.Response.Charset = Encoding.UTF8.WebName; 

Ottiene il nome registrato con l'Internet Assigned Numbers Authority (IANA) per la codifica corrente.

1

utilizzare Encoding.UTF8.WebName per ottenere il valore da utilizzare nel set di caratteri.