Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > url-кодировка в Webrequest


Автор: 12usver12 5.1.2007, 15:40
нужно отправить запрос
HttpWebRequest webRequest =(HttpWebRequest)WebRequest.Create(url);


для примера url = "somesite.ru/text.php?name=evgen&number=3456&"+text

например string text= "форум программистов" 

как мне правильно перекодировать русский текст ?

Автор: Yama 5.1.2007, 16:10
Цитата(12usver12 @  5.1.2007,  15:40 Найти цитируемый пост)
нужно отправить запрос
HttpWebRequest webRequest =(HttpWebRequest)WebRequest.Create(url);


для примера url = "somesite.ru/text.php?name=evgen&number=3456&"+text

например string text= "форум программистов" 

как мне правильно перекодировать русский текст ? 


попробуй так:
Код

Uri uri=new Uri("somesite.ru/text.php?name=evgen&number=3456&форум программистов");


Автор: 12usver12 5.1.2007, 17:20
чото не получается

по идее somesite.ru/text.php?name=evgen&number=3456&форум программистов
запрос к серверу должен в итоге идти такой
 somesite.ru/text.php?name=evgen&number=3456&%F4%EE%F0%F3%EC+%EF%F0%EE%E3%F0%E0%EC%EC%E8%F1%F2%EE%E2

а передается 

somesite.ru/text.php?name=evgen&number=3456&%D1%84%D0%BE%D1%80%D1%83%D0%BC%20%D0%B4%D1%83%D1%80%D0%B0%D0%BA%D0%BE%D0%B2

  smile 

Автор: Yama 5.1.2007, 17:39
ты попробуй на реальной ссылке с русскими символами в инете. Я не знаю, на каком сайте такое используется, но:
Код

FileWebRequest req = (FileWebRequest)WebRequest.Create(new Uri("file://D:\\my\\Mass Media  Год ликвидации.htm")) ;
           String s = req.RequestUri.AbsoluteUri;//s = "file:///D:/my/Mass%20Media%20%20%D0%93%D0%BE%D0%B4%20%D0%BB%D0%B8%D0%BA%D0%B2%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8.htm"
           String s2 = req.RequestUri.AbsolutePath;//s2 = "D:/my/Mass%20Media%20%20%D0%93%D0%BE%D0%B4%20%D0%BB%D0%B8%D0%BA%D0%B2%D0%B8%D0%B4%D0%B0%D1%86%D0%B8%D0%B8.htm"

значния s и s2 взял в дебагере.

Автор: 12usver12 5.1.2007, 21:25
Спасиб - да ты прав я попробывал на других сайтах работает
но просто на том на котором я хотел, такое не прокатываеть - не знаю
 почему. там другие кодировки она видно понимает, ну в как в проге InetCrack
 ну этот сайтец translate.ru 

на aspe странички - хотя видно это не из-за этого

Автор: mr.DUDA 5.1.2007, 22:54
Есть разные сайты и разные браузеры. Кто-то понимает почти все кодировки, кто-то все без исключения. Например, есть браузеры с поддержкой UTF-8 в строке адреса, есть и без неё.

Автор: 12usver12 6.1.2007, 10:27
вот случайно нашел еще - наверно это то что надо:

Код

using system.web;
.
.
string a = HttpUtility.UrlEncode(".......");


подробная инфа в MSDN есть HttpUtility

самое интересное что  я в своей VS 2005 -
так и не нашел  HttpUtility - что только не подключал

Автор: Yama 8.1.2007, 11:56
Цитата(12usver12 @  6.1.2007,  10:27 Найти цитируемый пост)
подробная инфа в MSDN есть HttpUtility

самое интересное что  я в своей VS 2005 -
так и не нашел  HttpUtility - что только не подключал

References->(right mosue click)->add reference->System.Web.dll(namespace System.Web)
Далее:
Код

using System.Web;
.....
String url=HttpUtility.UrlEncode(....);

или
Код

String url=System.Web.HttpUtility.UrlEncode(....);

Подробное описание класса HttpUtility ты уже, судя по всему, нашел. Так что вперед! используй!  smile 

З.Ы. С новым годом и Рождеством!!

Добавлено @ 11:58 
в догонку:
учти еще и это:
Цитата(mr.DUDA @ 5.1.2007,  22:54)
Есть разные сайты и разные браузеры. Кто-то понимает почти все кодировки, кто-то все без исключения. Например, есть браузеры с поддержкой UTF-8 в строке адреса, есть и без неё.


Еще вот это глянь: http://msdn2.microsoft.com/en-us/library/ms775142.aspx smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)