我正在使用此代码:
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/