C# UTF-8字符串看起来不正确

C# UTF-8字符串看起来不正确,c#,asp.net,C#,Asp.net,我有一些我从API得到的字符串 api给了我如下字符串: 但我怀疑我需要以某种方式制造这些UTF-16? 有没有办法用.NET来实现这一点?我知道.NET更喜欢使用UTF-16 public Task ParseTask(XElement task, bool singleTask) { Task t = new Task(); int id; int.TryParse(task.Attribute("id").Value, out id); t.ID = id

我有一些我从API得到的字符串

api给了我如下字符串:

但我怀疑我需要以某种方式制造这些UTF-16? 有没有办法用.NET来实现这一点?我知道.NET更喜欢使用UTF-16

public Task ParseTask(XElement task, bool singleTask)
{
    Task t = new Task();
    int id;
    int.TryParse(task.Attribute("id").Value, out id);
    t.ID = id;
    t.Title = singleTask ? task.Element("name").Value : task.Attribute("name").Value;
    t.IsComplete = task.Attribute("complete").Value == "1";
    t.IsBillable = task.Attribute("billable").Value == "1";

    if (task.Element("user").Attribute("id") != null)
    {
        t.UserID = task.Element("user").Attribute("id").Value;
        t.UserName = task.Element("user").Attribute("name").Value;
    }

    t.Description = task.Element("description").Value;
    decimal pph;
    decimal.TryParse(task.Element("price_per_hour").Value, out pph);
    t.PricePerHour = pph;

    decimal bh;
    decimal.TryParse(task.Element("budget_hours").Value, out bh);
    t.BudgetHours = bh;
    int pid;
    int.TryParse(task.Element("project").Attribute("id").Value, out pid);
    t.ProjectID = pid;

    int tlid;
    int.TryParse(task.Element("tasklist").Attribute("id").Value, out tlid);
    t.TaskListID = tlid;

    return t;
}
--

public List GetProjectTasks(int-projectID)
{
列表=新列表();
string args=string.Format(“project_id={0}”,projectID);
字符串uri=CreateURI(“paymo.tasks.findByProject”,args);
string reply=client.DownloadString(uri);
XDocument doc=XDocument.Parse(回复);
如果(IsOk(doc))
{
可数任务=
doc.Element(“响应”).Element(“任务”).Elements();
foreach(任务中的var任务)
{
list.Add(ParseTask(task,false));
}
}
其他的
{
抛出新异常();
}
退货清单;
}

.NET默认使用UTF-16字符串。函数
System.Text.Encoding.UTF8.GetString()
。 可以通过将数据作为
字节[]
数组传递并检索UTF-16字符串来帮助您


请参阅:

请显示检索字符串的代码。当字符串保存为ANSI时,您更可能已将其读取为UTF8。它来自服务器发送的XML文件…请显示如何实际获取传递到
ParseTask
方法的
XElement
实例。我只需要知道,如何告诉.net我的文档是utf-8编码的,并自动将其视为utf-16
 public List<Task> GetProjectTasks(int projectID)
        {
            List<Task> list = new List<Task>();

            string args = String.Format("project_id={0}", projectID);
            string uri = CreateURI("paymo.tasks.findByProject", args);
            string reply = client.DownloadString(uri);
            XDocument doc = XDocument.Parse(reply);
            if (IsOk(doc))
            {
                IEnumerable<XElement> tasks =
                    doc.Element("response").Element("tasks").Elements();

                foreach (var task in tasks)
                {
                    list.Add(ParseTask(task, false));
                }
            }
            else
            {
                throw new Exception();
            }



            return list;
        }