2011-08-12 9 views
-2

私はXMLを使っています。 "NAO OK" にXXX値にXMLから応答コードを設定しました

<ajax-response> 
<response> 
<item> 
<number></number> 
<xxx>N?o ok</xxx> 
<error>null</error> 
</item> 
</response> 
</ajax-response> 

"NAO OK" ですが、私からの変換方法を "N O OK?": は、私は、このようなXMLを受信して​​いますか?

私はコード化がutf8(1252)であることを知っていますが、これを出力xmlでどのように設定しますか?

私はリクエストに設定しようと試み:

client.Encoding = Encoding.UTF8; 

をではなく、作品を行います。 ありがとうございます!

+3

utf8(1252)とはutf8 ORウィンドウ1252のどちらかですが、両方ではありません – Mark

+0

なぜ-2ですか? @calos:はい、私はリモートサーバーからXMLを読んでいます.. –

答えて

1

コードページ1252からエンコーディングにエンコーディングを設定してみてください。以下の例では単純なサービスを使用して、エンコーディングをUTF-8に設定すると同じ問題が発生します。正しいエンコーディングに設定してください。

public class StackOverflow_7044842 
{ 
    const string xml = @"<ajax-response> 
<response> 
<item> 
<number></number> 
<xxx>Não ok</xxx> 
<error>null</error> 
</item> 
</response> 
</ajax-response>"; 

    [ServiceContract] 
    public class SimpleService 
    { 
     [WebGet] 
     public Stream GetXml() 
     { 
      WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml"; 
      Encoding encoding = Encoding.GetEncoding(1252); 
      return new MemoryStream(encoding.GetBytes(xml)); 
     } 
    } 
    public static void Test() 
    { 
     string baseAddress = "http://" + Environment.MachineName + ":8000/Service"; 
     WebServiceHost host = new WebServiceHost(typeof(SimpleService), new Uri(baseAddress)); 
     host.Open(); 
     Console.WriteLine("Host opened"); 

     WebClient client = new WebClient(); 
     client.Encoding = Encoding.GetEncoding(1252); 
     string response = client.DownloadString(baseAddress + "/GetXml"); 
     Console.WriteLine(response); 

     Console.Write("Press ENTER to close the host"); 
     Console.ReadLine(); 
     host.Close(); 
    } 
} 
関連する問題