C# UTF-8字符串看起来不正确
我有一些我从API得到的字符串 api给了我如下字符串: 但我怀疑我需要以某种方式制造这些UTF-16? 有没有办法用.NET来实现这一点?我知道.NET更喜欢使用UTF-16C# 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
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;
}