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

2019-02-10 04:15发布

问题:

I had used this in my code to set the Charset but IE did not like it. Any reason why?

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

I ended up having to set it to just context.Response.ContentType = "application/json;charset=utf-8" or context.Response.Charset = "utf-8"; instead. Not sure then what Encoding.UTF8.ToString(); would be utilized for if IE can't take it

回答1:

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

Gets the name registered with the Internet Assigned Numbers Authority (IANA) for the current encoding.



回答2:

Encoding.UTF8.ToString();

doesn't return

"utf-8"

It returns

"System.Text.UTF8Encoding"

which is the name of the type that Encoding.UTF8 lives in.

The name of the type (or class definition) is always returned by Object.ToString() if there is no overriding method in the class (which is the case here).



回答3:

use Encoding.UTF8.WebName to get the value to be used in the charset.