Почему вместо текста, я вижу набор символов, как исправить?
Скачиваю CSV файл по апи таки образом:
var request = WebRequest.Create(url);
request.Method = "GET";
var webStream = request.GetResponse().GetResponseStream();
var reader = new System.IO.StreamReader(webStream);
var data = reader.ReadToEnd();
Console.Write(data);
Но, когда я делаю Console.Write(data);
То вижу это:
в дальнейшем мне нужно обработать этот файл, но я не могу это сделать из-за того что файл нормально не читается
Как это исправить?
Василий Банников, как ее указать в моем коде? как получить переменную с тектом csv файла?
var request = WebRequest.Create(url);
request.Method = "GET";
var webStream = request.GetResponse().GetResponseStream();
var reader = new System.IO.StreamReader(webStream);
var data = reader.ReadToEnd();
Console.Write(data);
Владимир Коротенко, Извиняюсь перед вами
сделал на питоне print(response.headers)
и получит в заголовке такие значения:
'Content-Encoding': 'gzip' и 'Content-Type': 'text/csv'
dlysenko1311, попробуйте на своем файле вот этот код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Policy;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
internal class Program
{
static void Main(string[] args)
{
var url = "https://www.stats.govt.nz/assets/Uploads/Annual-enterprise-survey/Annual-enterprise-survey-2021-financial-year-provisional/Download-data/annual-enterprise-survey-2021-financial-year-provisional-csv.csv";
Test1(url);
Test2(url).GetAwaiter().GetResult();
}
static void Test1(string url)
{
var request = WebRequest.Create(url);
request.Method = "GET";
var webStream = request.GetResponse().GetResponseStream();
var reader = new System.IO.StreamReader(webStream);
var data = reader.ReadToEnd();
Console.Write(data);
}
static async Task Test2(string url)
{
var client = new HttpClient();
var stream = await client.GetStreamAsync(url);
var reader = new System.IO.StreamReader(stream);
var data = reader.ReadToEnd();
Console.Write(data);
}
}
}
Открою маленький секрет: есть такая штука, как кодировка текста - пока не скажете машине в какой кодировке ваш текст, она не сможет правильно его отобразить. Поэтому вам для начала надо разобраться в какой кодировке приходит текст от сервера, затем при необходимости перекодировать текст, а уже только потом вывести в правильной кодировке или куда-то его сохранить.
var request = WebRequest.Create(url);
request.Method = "GET";
var webStream = request.GetResponse().GetResponseStream();
var reader = new System.IO.StreamReader(webStream);
var data = reader.ReadToEnd();
Console.Write(data);