1

TL;DR Düsseldor 编码为 Düsseldor,Düsseldorf 未编码(默认 MVC 编码)为什么?

我正在构建一个具有肥皂访问权限的 api。当我收到请求时,我对所有数据进行 html 编码。就在我结束当前请求之前,我复制了 Response.Stream 并将其保存以进行日志记录。

我注意到杜塞尔多夫被我的 api 编码为“Düsseldorf”。这是意料之中的。但在我的日志中,它显示杜塞尔多夫编码为“Düsseldorf”(双重编码)我的日志在 MVC 序列化写入响应流后保存。

我认为这是因为肥皂在通过网络发送它们之前对值进行编码。

所以我的下一个测试是在我的 api 中关闭 html 编码。所以这次杜塞尔多夫给了肥皂序列化程序。

但它被编码为杜塞尔多夫?

编辑:当我说我打开/关闭编码时,我的意思是请求中的每个字段我使用 HttpUtility.HtmlEncode("some field")。并将其保存到数据库中。然后我使用 MVC 视图返回数据,如下所示:

public ActionResult CreateAccessCode ( CreateAccessCodeRequest request )
{
    var response = new Response (request);
    return new ContentResult (response);
}

我的问题是当 ContentResult 方法运行时,它似乎做了一些自己的编码,我想知道那是什么?

4

1 回答 1

2

SOAP 使用 XML - HTML 和 XML 需要稍微不同的编码,但在您的情况下它可能是也可能不是问题。

您手动构建的 XML 很可能是不正确的。请不要用字符串连接构造 XML - XDocument/XmlDocument 更适合这种情况。

于 2013-03-07T22:31:58.503 回答