Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Кодировка при отправке данных методом POST Добавлено: 03.11.10 16:06  

Автор вопроса:  Ahtoxa
Подскажите как перекодировать данные переменной из cp-1251 в utf-8. А то отправляются крякозяблы :(
Отправляю с помощью HttpWebRequest

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 03.11.10 16:31
  1. System.Text.Encoding.Convert(..)


а! почему не WebClient!? :)

Ответить

Номер ответа: 2
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #2 Добавлено: 03.11.10 17:57
mb потому что WebClient не имеет функция для выполнения POST запросов?

Ответить

Номер ответа: 3
Автор ответа:
 Ahtoxa



Вопросов: 6
Ответов: 29
 Профиль | | #3 Добавлено: 03.11.10 18:16
Делаю так:
  1. Function cptoutf8(ByVal cp2)
  2.         Dim myutf8 As Encoding = Encoding.UTF8
  3.         Dim cp As Encoding = Encoding.ASCII
  4.         Dim cpBytes As Byte() = cp.GetBytes(cp2)
  5.         Dim UTF8Bytes As Byte() = Encoding.Convert(cp, myutf8, cpBytes)
  6.         Dim UTF8Chars(myutf8.GetCharCount(UTF8Bytes, 0, UTF8Bytes.Length) - 1) As Char
  7.         myutf8.GetChars(UTF8Bytes, 0, UTF8Bytes.Length, UTF8Chars, 0)
  8.         Dim UTF8String As New String(UTF8Chars)
  9.         Return (UTF8String)
  10.     End Function

Почему-то всёравно получаются крякозяблы. Латиницу нормально отображает а кирилицу нет :(

Ответить

Номер ответа: 4
Автор ответа:
 Ahtoxa



Вопросов: 6
Ответов: 29
 Профиль | | #4 Добавлено: 03.11.10 18:18
В utf-8 кодирую потому что сервер отдаёт заголовок "Content-Type: text/html; charset=UTF-8"

Ответить

Номер ответа: 5
Автор ответа:
 Ahtoxa



Вопросов: 6
Ответов: 29
 Профиль | | #5 Добавлено: 03.11.10 20:54
Так пытался:
  1. poststring = "parametr=" & Uri.EscapeDataString(cptoutf8("en-ру"))

И так:
  1. poststring = "parametr=" & Uri.EscapeDataString(Encoding.ASCII.GetString(Encoding.UTF8.GetBytes("en-ру")))

en нормально проходит, а вместо ру в первом слуяае ромбики, во втором случае вопросики.

Ответить

Номер ответа: 6
Автор ответа:
 Саидушка



Вопросов: 0
Ответов: 1
 Web-сайт: www.livedosug.ru
 Профиль | | #6
Добавлено: 04.11.10 22:48
согласен

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 05.11.10 00:51
Encoding.Convert?

Ответить

Номер ответа: 8
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #8 Добавлено: 05.11.10 08:52
Надо не отправляемый текст перекодировать, а задать кодировку для HttpWebRequest.. Чтобы вы не кодировали, при отправке HttpWebRequest переведет в тот формат который определен для него.. И если у афтара стоит ср-1251, то именно в нее он и перекодирует то, что вы ему подсунете..

Ответить

Номер ответа: 9
Автор ответа:
 MISTER X



ICQ: 463865965 

Вопросов: 31
Ответов: 190
 Web-сайт: studioartf.ru
 Профиль | | #9
Добавлено: 06.11.10 17:01
mb надо не en-ру а en-ru ??

Ответить

Номер ответа: 10
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #10 Добавлено: 07.11.10 04:52
или ru-ru?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам