powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Кракозябры в строке после записи-чтения в файл
4 сообщений из 4, страница 1 из 1
Кракозябры в строке после записи-чтения в файл
    #39435015
ukugyul552465
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Столкнулся с небольшой проблемой.

1. Сначала получаем код веб-страницы в файл с помощью WebClient.
Всё в порядке.

2. Считываем код из файла в строку:
Код: c#
1.
2.
StreamReader sr1 = new StreamReader("spec_temp_data_36289572542.gtemp");
string s1 = sr1.ReadToEnd();


На этом этапе в строке уже присутствуют непонятные символы.

3. После этого со строкой выполняются некоторые преобразования и она записывается в файл.
В файле, соответственно, тоже есть кракозябры.

Думаю, что ошибка возникает во 2 пункте(проверял Console.WriteLine(s1))

Пробовал у StreamReader и у StreamWriter менять кодировку на UTF-8, но это ничего не меняет.

Предполагаю, что string не моет хранить некоторые utf-8-символы.

кусок кода страницы
<base href=" http://www.cyberforum.ru/" /><!--[if IE]></base><![endif]--> <link rel="canonical" href=" http://www.cyberforum.ru/csharp-beginners/thread1652665.html" /> <base href=" http://www.cyberforum.ru/" /> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <meta name="keywords" content="C# �������� ������ �� �������, ������ � ���� Header, C# ��� ����������, ����� �������������, ������������ �����, ����������, �����������, ����������, ����������������, ����" /> <meta name="description" content="������������, ��� ����� ������� �� ������� ����� � ���� Header, � �� ���� HTML(�������� ����� 500� ��������, ������ ������ ���������) using (HttpRequest req = new HttpRequest()) { req.Cookies = new CookieDictionary(); req.ConnectTimeout = 5000; ... C# ��� ���������� " /> <meta name="viewport" content="width=1100" /> <meta name="robots" content="noyaca" /> <meta name="robots" content="noodp" /> <style type="text/css" id="vbulletin_css">
/**
* vBulletin 3.8.9 CSS
* Style: '������� �����'; Style ID: 1
*/
@import url(" http://www.cyberforum.ru/clientscript/vbulletin_css/style-872e15c9-00001.css");
</style> <link rel="stylesheet" type="text/css" href=" http://www.cyberforum.ru/clientscript/vbulletin_important.css?v=389" /> <script type="text/javascript"> <!--
var SESSIONURL = "s=ba2c236ea0ea46bfe47d1119dafbfd57&";
var SECURITYTOKEN = "guest";
var IMGDIR_MISC = "images/misc";
var vb_disable_ajax = parseInt("0", 10);
// --> </script> <script type="text/javascript" src=" http://ajax.googleapis.com/ajax/libs/yui/2.9.0/build/yahoo-dom-event/yahoo-dom-event.js?v=389"></script> <script type="text/javascript" src=" http://ajax.googleapis.com/ajax/libs/yui/2.9.0/build/connection/connection-min.js?v=389"></script> <script type="text/javascript" src=" http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript" src=" http://www.cyberforum.ru/clientscript/custom/jquery.browser.min.js"></script> <script type="text/javascript" src=" http://www.cyberforum.ru/clientscript/vbulletin_global.js?v=389"></script> <script type="text/javascript" src=" http://www.cyberforum.ru/clientscript/vbulletin_vbpost.js"></script> <script type="text/javascript" src=" http://www.cyberforum.ru/clientscript/vbulletin_post_loader.js?v=389"></script> <script type="text/javascript" src=" http://www.cyberforum.ru/clientscript/vbulletin_md5.js?v=389"></script> <link rel="alternate" type="application/rss+xml" title="CyberForum.ru - ����� ������������� � ���������� RSS Feed" href="/external.php?type=RSS2" /> <link rel="alternate" type="application/rss+xml" title="C# ��� ���������� - CyberForum.ru - RSS Feed" href="/external.php?type=RSS2&forumids=91" /> <link type="application/opensearchdescription+xml" rel="search" href=" http://www.cyberforum.ru/opensearch.xml" title="CyberForum.ru" /> <link rel="stylesheet" href=" http://www.cyberforum.ru/clientscript/vbulletin_css/geshi.css" type="text/css" media="screen" /> <link rel="stylesheet" type="text/css" href=" http://www.cyberforum.ru/clientscript/vbulletin_css/spoiler.css" /><script type="text/javascript">
var krtsts = {
"bburl": " http://www.cyberforum.ru"
};


Я заметил, что эти символы - русские буквы.

код без кракозябр
<base href=" http://www.cyberforum.ru/" /><!--[if IE]></base><![endif]--> <link rel="canonical" href=" http://www.cyberforum.ru/csharp-beginners/thread1652665.html" /> <base href=" http://www.cyberforum.ru/" /> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <meta name="keywords" content="C# Загрузка ответа от сервера, только в виде Header, C# для начинающих, форум программистов, компьютерный форум, киберфорум, сайберфорум, компьютеры, программирование, софт" /> <meta name="description" content="Здравствуйте, мне нужно грузить от сервера ответ в виде Header, а не весь HTML(которого около 500к символов, сильно грузит программу) using (HttpRequest req = new HttpRequest()) { req.Cookies = new CookieDictionary(); req.ConnectTimeout = 5000; ... C# для начинающих " /> <meta name="viewport" content="width=1100" /> <meta name="robots" content="noyaca" /> <meta name="robots" content="noodp" /> <style type="text/css" id="vbulletin_css">
/**
* vBulletin 3.8.9 CSS
* Style: 'Обычный стиль'; Style ID: 1
*/


Веб-страница, код которой мы получаем, имеет кодировку utf-8.

Что тут можно сделать?
...
Рейтинг: 0 / 0
Кракозябры в строке после записи-чтения в файл
    #39435018
ukugyul552465
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин, всё, ошибка ясна:

Код: c#
1.
StreamReader sr1 = new StreamReader("spec_temp_data_36289572542.gtemp", System.Text.Encoding.Default);
...
Рейтинг: 0 / 0
Кракозябры в строке после записи-чтения в файл
    #39435060
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukugyul552465Предполагаю, что string не моет хранить некоторые utf-8-символы
нездоровое предположение.
string может хранить все кодовые точки юникода (внутренне представление utf-16)
...
Рейтинг: 0 / 0
Кракозябры в строке после записи-чтения в файл
    #39435180
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ukugyul552465Блин, всё, ошибка ясна:

Код: c#
1.
StreamReader sr1 = new StreamReader("spec_temp_data_36289572542.gtemp", System.Text.Encoding.Default);


А иногда, во время написания, приходится в цикле перебирать все кодировки, что бы понять, какую, блин кодировку использовали создатели файла!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Кракозябры в строке после записи-чтения в файл
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]