html编码的字符是什么?

时间:2013-03-07 22:24:18

标签: c# soap

TL; DR Dü sseldor被编码为D& amp;#252; sseldor,Düsseldorf未编码(通过默认的MVC编码)为什么?

我正在用肥皂访问建立一个api。当我收到请求时,我会对所有数据进行编码。 在我结束当前请求之前,我复制了Response.Stream并保存它以进行日志记录。

我注意到杜塞尔多夫是由我的api编码为“Dü sseldorf”。这是预料之中的。 但在我的日志中,它显示Düsseldorf编码为“D& amp;#252; 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方法运行时,它似乎做了一些自己的编码,我想知道那是什么?

1 个答案:

答案 0 :(得分:2)

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

您手动构建XML的可能性更大。请不要使用字符串连接构造XML - XDocument / XmlDocument更适合它。