C# 将utf8编码的字符串转换为C中的unicode#

C# 将utf8编码的字符串转换为C中的unicode#,c#,encoding,C#,Encoding,我通过HTTP Post从C#应用程序中的URL返回了这个字符串,其中包含一些汉字,例如: Gelatos® Colors Gift Set中文 问题是我想把它转换成 Gelatos® Colors Gift Set中文 两个字符串实际上相同,但编码不同。我知道在C#中,一切都是UTF16。我在这里读过很多关于从一种编码转换到另一种编码的帖子,但没有成功 希望有人能帮忙 这是C代码: 以下是来自服务器的代码: <%@CodePage = 65001%> <%opt

我通过HTTP Post从C#应用程序中的URL返回了这个字符串,其中包含一些汉字,例如:

Gelatos® Colors Gift Set中文
问题是我想把它转换成

Gelatos® Colors Gift Set中文
两个字符串实际上相同,但编码不同。我知道在C#中,一切都是UTF16。我在这里读过很多关于从一种编码转换到另一种编码的帖子,但没有成功

希望有人能帮忙

这是C代码:

以下是来自服务器的代码:

<%@CodePage = 65001%>
<%option explicit%>
<%
Session.CodePage = 65001
Response.charset ="utf-8"
Session.LCID     = 1033 'en-US
来自web的输出是正确的。但我只是想知道是否对C#应用程序的http流进行了一些更改


谢谢。

首先以字节形式下载网页。然后,将字节转换为正确的编码


首先使用错误的编码进行转换,可能会丢失数据。特别是使用ASCII。

如果服务器真的返回UTF-8文本,您可以通过设置其属性来配置
WebClient。这将消除任何后续转换的需要

using (WebClient wc = new WebClient())
{
    wc.Encoding = Encoding.UTF8;
    json = wc.DownloadString("http://mysite.com/ext/export.asp");
}

您尝试了哪些转换函数,出现了什么问题?叶:您能告诉我们负责生成字符串的HTTP POST的代码吗?谢谢,但是如何使用特定编码从URL下载?好的,使用byte[]response=new System.Net.WebClient().DownloadData(URL)获得下载部分;谢谢道格拉斯…终于把这件事做好了。ASP确实返回UTF8,因此C#将显示返回的正确字符串。
%>
using (WebClient wc = new WebClient())
{
    wc.Encoding = Encoding.UTF8;
    json = wc.DownloadString("http://mysite.com/ext/export.asp");
}