c# - HttpWebRequest 一个 Unicode 字符

标签 c# asp.net httpwebrequest

我正在使用此代码:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
string result = null;
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
{
   StreamReader reader = new StreamReader(resp.GetResponseStream());
   result = reader.ReadToEnd();
   reader.Close();
}

result 中,我得到类似 003cbr/003e003cbr/003e 的文本(我认为这应该是 2 个换行符)。我尝试使用 Streamreader 的 2、3 参数版本,但字符串是相同的。 (请求返回json字符串)

为什么我会得到这些字符,以及如何避免它们?

最佳答案

目前还不清楚该文本是什么,但您目前没有指定编码。服务器使用什么内容编码? StreamReader默认为 UTF-8。

听起来实际上您得到了某种奇怪编码的 HTML,因为 U+003C 是 < U+003E 是 > ,给予<br /><br />作为内容。那不是 JSON...

两个测试:

  • 使用WebClient.DownloadString ,它将检测要使用的正确编码
  • 查看在浏览器中使用相同网址显示的内容

编辑:好的,现在我已经看到了文本,它实际上得到了:

\u003cbr /\u003e

\u这部分很重要 - 这是 JSON 的一部分,它指出接下来的四个字符形成 UTF-16 代码单元的十六进制表示形式。

任何用于解析该文本的 JSON API 都应该为您执行转义操作。

关于c# - HttpWebRequest 一个 Unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7555049/

相关文章:

c# - IIS 上的动态 WCF 服务耦合

c# - 如何在没有额外线程的情况下执行具有等待的任务

c# - 访问 Request.QueryString[foo] 为 null 但 URL 显示查询字符串/参数就在那里

asp.net - 仅显示安全内容

c# - 无法从 .Net 应用程序发送发布请求,它适用于 Chrome RESTClient

c# - 除非 fiddler 正在运行,否则 HttpWebRequest 不起作用

c# - 在 Lazy<T> 中转换接口(interface)类型

c# - 如何使用您的应用程序打开 jpg 文件?

asp.net - 从 ASP.NET 应用程序将 '.xlsx' 或 '.docx' 上传到 SharePoint 2007,导致文件 'corruption'

http - HybridHttpOrThreadLocalScoped 和 HttpContextScoped 有什么区别