如何让一个简单的c#web服务返回<;?xml版本=";1.0“;编码=";utf-16“&燃气轮机;头球?
我编写了一个返回XML文档的非常简单的web服务 该文档的标题当前为如何让一个简单的c#web服务返回<;?xml版本=";1.0“;编码=";utf-16“&燃气轮机;头球?,c#,web-services,utf-8,asmx,utf-16,C#,Web Services,Utf 8,Asmx,Utf 16,我编写了一个返回XML文档的非常简单的web服务 该文档的标题当前为 我希望它返回 如何更改.asmx或.cs文件中的默认输出编码 smo.asmx <%@ WebService Language="C#" Class="smo" %> smo.asmx using <blah> [WebService(Namespace="http://www.bl.uk/webservices/")] public class smo : WebService { [
我希望它返回
如何更改.asmx或.cs文件中的默认输出编码
smo.asmx
<%@ WebService Language="C#" Class="smo" %>
smo.asmx
using <blah>
[WebService(Namespace="http://www.bl.uk/webservices/")]
public class smo : WebService
{
[XmlRoot(ElementName = "SQLServer")]
public class CDatabaseBackup
{
public string ServerName;
public string DatabaseCount;
}
//
// Generic SMO query processor
//
[WebMethod(Description = "WMIClassProperty: ", EnableSession = false, CacheDuration=60)]
public CDatabaseBackup smoDatabaseBackupStatus(string SQLServerName)
{
CDatabaseBackup result = new CDatabaseBackup();
Server svr;
<blah>
return result;
}
您可以在web.config的全球化部分将web服务配置为处理UTF-16而不是UTF-8。全球化标记的requestEncoding和responseEncoding属性应设置为UTF-16
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
必须转换为
<globalization requestEncoding="utf-16" responseEncoding="utf-16"/>
此更改将允许web服务输出UTF-16,但也将要求客户端在UTF-16中发出请求。您可以在web.config的全球化部分中配置web服务以处理UTF-16而不是UTF-8。全球化标记的requestEncoding和responseEncoding属性应设置为UTF-16
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
必须转换为
<globalization requestEncoding="utf-16" responseEncoding="utf-16"/>
此更改将允许web服务输出UTF-16,但它也将要求客户端在UTF-16中发出请求。如果我欺骗并取消注释第二个“set”语句以将UTF-8替换为UTF-16,则存储过程将工作。。。我不想作弊,我对把这件事做好很感兴趣。(好吧,比我通常使用的黑客和粘贴更正确:)我不太明白你在做什么。您是如何创建XML的?您必须以预期的编码返回XML。XML是通过返回类创建的,在本例中,是从我调用的方法返回CDATA BaseBackup。它会自动序列化为XML文档。看起来C#框架会自动创建东西,但在我的环境中它使用UTF-8。我认为这是同一个问题。。。如果我欺骗并取消注释第二个“set”语句以将UTF-8替换为UTF-16,则存储过程可以工作。。。我不想作弊,我对把这件事做好很感兴趣。(好吧,比我通常使用的黑客和粘贴更正确:)我不太明白你在做什么。您是如何创建XML的?您必须以预期的编码返回XML。XML是通过返回类创建的,在本例中,是从我调用的方法返回CDATA BaseBackup。它会自动序列化为XML文档。看起来C#框架会自动创建东西,但在我的环境中它使用UTF-8。我认为这是同一个问题。。。谢谢,我会调查的。我将不得不取消我的黑客,看看这是否有效!!谢谢,我会调查的。我将不得不取消我的黑客,看看这是否有效!!