DownloadString跳过了换行符

3
我想从Google Finance导入文本数据,我使用这个http地址作为DownloadString的参数:http://www.google.com/finance/getprices?i=1200&p=1d&f=d,o,h,l,c,v&df=cpct&q=AAPL。然而,生成的字符串缺少任何换行符,所以很难解析。有什么好的建议吗?

2
请展示你下载的代码。 - CodingDefined
你在下载时使用什么代码? - Vajura
2个回答

2
文件中确实有换行符。在十六进制编辑器中查看,它们是Unix换行符,\n(0x0A),而不是Windows换行符,\r\n(0x0D 0x0A)。你可以将字符串提供给StringReader,然后逐行读取并逐行写入到其他地方,以规范化行尾,或者你可以进行替换操作。 DownloadString不会更改下载的内容,唯一的问题可能是编码不匹配。

1

从流中返回的行结束符为 \n,与默认的Windows行结束符\r\n相对应(在Windows上表示为Environment.NewLine)。

尝试在所有可能的\r\n组合上进行拆分:

WebClient wc = new WebClient();
string s = wc.DownloadString("http://www.google.com/finance/getprices?i=1200&p=1d&f=d,o,h,l,c,v&df=cpct&q=AAPL");

string[] lines = s.Split(new string[] { Environment.NewLine, "\n", "\"r" }, StringSplitOptions.None);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接