System.Text.Encoding.UTF8.GetBytes引入奇怪的字符

时间:2013-11-22 18:05:34

标签: c#

使用此

对客户端Web服务执行PUT
using System;
using System.IO;
using System.Net;

class Test
{
    static void Main()
    {
        string xml = "<xml>...</xml>";
        byte[] arr = System.Text.Encoding.UTF8.GetBytes(xml);
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost/");
        request.Method = "PUT";
        request.ContentType = "text/xml";
        request.ContentLength = arr.Length;
        Stream dataStream = request.GetRequestStream();
        dataStream.Write(arr, 0, arr.Length);
        dataStream.Close();
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        string returnString = response.StatusCode.ToString();
        Console.WriteLine(returnString);
    }
}

this SO answer提供

如果我查看fiddler中的请求,我的帖子请求结尾有一个奇怪的字符</xml>看起来像一个正方形[怀疑它是一个BOM]

不确定它是如何引入我的字符串的。

1 个答案:

答案 0 :(得分:2)

使用new UTF8Encoding(false).GetBytes(xml);

UTF8Encoding Constructor (Boolean):初始化UTF8Encoding类的新实例。参数指定是否提供Unicode字节顺序标记。