<%@ Register TagPrefix="uc1" TagName="wc" Src="~/controls/test.ascx" %>
<uc1:wc id="Wc1" runat="server"></uc1:wc>
Кодировка ASP.NET
Есть страница
page.aspx
Код:
Которая использует control-файлы, загружающие данные с сервера (прокси-скрипт)
test.ascx
Код:
<%@ Control Language="vb" Inherits="page_filter" enableViewState="False" CodeFile="test.ascx.vb" %>
<%=GetPageFilter()%>
<%=GetPageFilter()%>
test.ascx.vb
Код:
Partial Class page_filter
Inherits System.Web.UI.UserControl
' функция для скачивания любых файлов по http
private function GetPageHTTP(ByVal URL As String) As String
Dim wc As New System.Net.WebClient()
Dim s As System.IO.Stream = wc.OpenRead(URL)
Dim r As String
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(s, False)
r = sr.ReadToEnd()
Return r
end function
' функция для скачивания формы
public function GetPageToursFilter_bigform() As String
' достаем QUERY_STRING
Dim URL as String
Dim wc As New System.Net.WebClient()
Dim qs as String
qs = ""
For Each s As String In Request.QueryString
qs = qs & s & "=" & Request.QueryString(s) & "&"
Next
' Подгружаем данные
return GetPageHTTP("http://www.site.ru/?" & qs)
end function
End Class
Inherits System.Web.UI.UserControl
' функция для скачивания любых файлов по http
private function GetPageHTTP(ByVal URL As String) As String
Dim wc As New System.Net.WebClient()
Dim s As System.IO.Stream = wc.OpenRead(URL)
Dim r As String
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(s, False)
r = sr.ReadToEnd()
Return r
end function
' функция для скачивания формы
public function GetPageToursFilter_bigform() As String
' достаем QUERY_STRING
Dim URL as String
Dim wc As New System.Net.WebClient()
Dim qs as String
qs = ""
For Each s As String In Request.QueryString
qs = qs & s & "=" & Request.QueryString(s) & "&"
Next
' Подгружаем данные
return GetPageHTTP("http://www.site.ru/?" & qs)
end function
End Class
Данные от сервер возвращаются в win1251. Обжалованию не подлежит...
И нужно то, что ретурнит GetPageHTTP перекодировать в UTF8 ...
Или насильно выдать windows-1251
пытаюсь так, вставляю в начало page.aspx
<%Response.Charset="windows-1251"%>
А в ответ выдает кракозяблы, даже не похожие ни на что... (как выглядит "кривая" вин1251, кои и утф8 - знаю...)
Помогите, пожалуйста.
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(s, False)
на
Dim sr As System.IO.StreamReader = New System.IO.StreamReader(s, System.Text.Encoding.GetEncoding("windows-1251"), False)
больше ничего не менял...
И теперь из вин1251 оно делает utf8 ... проблема решена, но...
объясните суть, пожалуйста!!!