GET ответ сохраняю в тхт файл, не правильна кодировка - C#
Формулировка задачи:
Всем привет!
сделал несколько GET запросов, получил куки с авторизацией. Далее отправляю GET запрос, текст ответа сохраняю в тхт файл и там получется html текст страницы в "другой" кодировке, как изменить?
запрос
ответ сохраненный в тхт файл
Мне нужно получить хтмл код страницы, в которой капча(не картинка) текстом(простое уравнение 2+3). Хочу найти в тексте эту капчу и отправить её со следующит POST запросом. Надеюсь мой способ правильный или это стандартная ошибка новичка?
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://ufa.allpn.ru/user/add/russia/?cat=apartment"); request.CookieContainer = cc; request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0"; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; request.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"); request.Headers.Add("Accept-Encoding", "gzip, deflate"); HttpWebResponse resp = (HttpWebResponse)request.GetResponse(); Stream stream = resp.GetResponseStream(); StreamReader sr = new StreamReader(stream); StreamWriter writer = new StreamWriter("D:\\allpn.txt", false); writer.WriteLine(sr.ReadToEnd()); writer.Close(); resp.Close();
� ͽmw�F�(�Y9'���{f$ߑ��&�R��8���&N�����@$$!" J����߸_��{�~Qg�Ulٲg&��{fQ���$�<�FOU� ��(y�s&����������+�x���n���kK/�te�e
��ĊY������z�/�lY���UaC$��Z��M1�&���I~�����ɕ�fu.O�B$b�VfJ���o٭��B�:m�1}Gݗ�-���D���N����P���j^�*"Ǘ�,,rb�]� �L���r���Dt��_�"E��N����[E��Ʋb�� ��b(���j�5�:B�*����ȧ����\,� ��%��@E��A�O�
F/Z�џ�<�)r�g-Zb˵��y�(r�S��Ժƭ�U�\��[��X��B��m�R��`Ug�^�/��>�VHQ$ׯ��'�<DZiW������ܜ�"��K�嗦"(���Wo\�~�U���UEVxw�����g�z
����R�6H��T���|����5Q��!—�E.��X�&� �C�ψk\�tYf'�C�B=KӳXs��r8W�v��:'�_V��@�������_b��^������ d�LG���V#�-@�Y�F�/뀛 Xa���w`z"�2�k�[�R�H��)�`O�̘0����ܸ���*ŀf\�Rd��a~&±p�ɯ���J���|a��q��ZCƀq�kP�1T�w� ��ѻ��U�+c��?���r�U�
�#�e��#��D�v��5{��@��p��M�-�y1��ĭР���!d���ȯ��;|m"�+�B$R[aº�j���ܨ+O����='䞬��� ��J��<�-�?���SG������Q-m�B��CM�Z-ι"���jx�[1��Z:��O��{���
)���X�@q�N���Z��](�e��1nV�9!��A�cdcL��:�َ�5��9~��M�����4d�T�8��"�5]���LGjUV�0�BD�U�y%ψ�L�DX��K�
�������m�'��rey���Q�C�{��o)M�|!��T��ԹY�C�O�2�Yح�F�*
�J����d&�D��lр�r}A�g�/zG-z��3�ꀚ? 뤥<C�6�}�#���^���h�F��~
?��r�� �Z�'��<_���C�Z�?;&s��m0��8n����>3]���>�D]9�.
jڈѥ�1�4�\��� 1��W��:,��b'��a��"#�|����ɝ�D�uI�)ڀt���"gB@���j�#�<ۧ_Υy��*_,����7\�Ώ>(���i��ԤDX�m
���~6{�w ��t~��ɔ=9������%(�= �9�փ���뛧�2%ԐQ���x�����T|��:5]�|��
y�)�=E����`<�����^3s���w��,��
�����0<N�w� �K�]��w ୩ �;5ְa���i�m�>��m��j�V�&j�t\�m�S��si�Ȕ>+m����5պ'�͏烀��BP��6��5���m��z�C��"�4��C�Vd��,ɳ`�rf�b(���`N��7��
это пробовал и всеравно каракули
HttpWebResponse resp = (HttpWebResponse)request.GetResponse(); Stream stream = resp.GetResponseStream(); StreamReader sr = new StreamReader(stream, Encoding.GetEncoding("windows-1251")); StreamWriter writer = new StreamWriter("D:\\allpn.txt", false, Encoding.GetEncoding("windows-1251")); writer.WriteLine(sr.ReadToEnd()); writer.Close(); resp.Close();
HttpWebResponse resp = (HttpWebResponse)request.GetResponse(); Stream stream = resp.GetResponseStream(); StreamReader sr = new StreamReader(stream, System.Text.Encoding.UTF8); StreamWriter writer = new StreamWriter("D:\\allpn.txt", false, System.Text.Encoding.UTF8); writer.WriteLine(sr.ReadToEnd()); writer.Close(); resp.Close();
Вроде разобрался, помогло это при запросе
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
Хотя ещё не до конца, русские буковки не видит, вопросиками всё
<tbody class="add_comm_and_apartment" >
<tr><td id="f2">?????????? ?? ?????: <div id="advice">??????? ????? ??? ??????</div></td><td id="f3">
<input type="text" name="from_metro" size="25" value="">
<select name="from_metro2">
<option value="">--- ?? ?????</option>
<option value="????? ??????">????? ??????</option>
<option value="????? ???????????">????? ???????????</option>
<option value="??????">??????</option>
</select>
</td></tr>
Всё! окончательно разобрался!
Всем спасибо что посмотрели на ход моих мыслей =)
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://ufa.allpn.ru/user/add/russia/?cat=apartment"); request.CookieContainer = cc; request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0"; request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; request.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"); request.Headers.Add("Accept-Encoding", "gzip, deflate"); request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate; HttpWebResponse resp = (HttpWebResponse)request.GetResponse(); StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.GetEncoding(1251)); StreamWriter writer = new StreamWriter("D:\\allpn.txt", false, Encoding.GetEncoding(1251)); writer.WriteLine(sr.ReadToEnd()); writer.Close(); resp.Close();
Решение задачи: «GET ответ сохраняю в тхт файл, не правильна кодировка»
textual
Листинг программы
Encoding srcencoding = Encoding.UTF8; string charSet = httpWebResponse.ContentEncoding; if (!string.IsNullOrEmpty(charSet)) { srcencoding = Encoding.GetEncoding(charSet); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д