我们都知道默认情况下,WebAPI2会向HttpResponseMessage
Content
消息添加反斜杠和引号。
使用标准操作代码:
public HttpResponseMessage Test()
{
return this.Request.CreateResponse(HttpStatusCode.OK, "Hello World");
}
返回" \" Hello World \""显示" Hello World" (带引号)。
如果我更改API方法并添加编码:
public HttpResponseMessage Test()
{
return new HttpResponseMessage()
{
StatusCode = HttpStatusCode.OK,
Content = new StringContent("Hello World", System.Text.Encoding.UTF8, "application/json")
};
这解决了这个问题,因为Content
结果变成了Hello World,但仅用于Test
方法。
很好,但这只解决了Test
方法的问题,而不是所有其他API方法。
是否有一种简单且单一的方法可以同时为所有Controller
操作添加UTF8编码?
答案 0 :(得分:4)
您似乎不了解编码是什么。找出因为重要的是要知道。编码是一种将字符串转换为字节的方法。
世界上没有编码添加反斜杠和引号。 JSON添加它们。 JSON是一种像XML一样的容器格式。
如果您不想要JSON,请不要使用JSON。您不需要指定UTF8,因为它是默认值。字符串内容的默认 。给自己写一个帮助,以任何你喜欢的方式创建HttpResponseMessage
。这样你就可以拥有任何你喜欢的复杂逻辑,并且仍然可以在一行中构建一个响应。