【发布时间】:2013-03-07 22:24:17
【问题描述】:
TL;DR Düsseldor 被编码为 Düsseldor,Düsseldorf 没有被编码(默认 MVC 编码)为什么?
我正在构建一个具有肥皂访问权限的 api。当我收到请求时,我对所有数据进行 html 编码。 就在我结束当前请求之前,我复制了 Response.Stream 并将其保存以进行日志记录。
我注意到杜塞尔多夫被我的 api 编码为“Düsseldorf”。这是意料之中的。 但在我的日志中,它显示杜塞尔多夫编码为“Düsseldorf”(双重编码)我的日志在 MVC 序列化写入响应流后保存。
我认为这是因为 soap 在通过网络发送值之前对其进行编码。
所以我的下一个测试是在我的 api 中关闭 html 编码。 所以这次杜塞尔多夫给了肥皂序列化器。
但它被编码为杜塞尔多夫?
编辑:当我说我打开/关闭编码时,我的意思是请求中的每个字段我使用 HttpUtility.HtmlEncode("some field")。并将其保存到数据库中。然后我用 MVC 视图返回数据,如下所示:
public ActionResult CreateAccessCode ( CreateAccessCodeRequest request )
{
var response = new Response (request);
return new ContentResult (response);
}
我的问题是当 ContentResult 方法运行时,它似乎做了一些自己的编码,我想知道那是什么?
【问题讨论】:
-
你的问题有点混乱。如果您禁用了 html 编码,那不是预期的结果吗?另外,当您关闭 html 编码时,您的日志中有什么内容?