4

さて、問題は次のとおりです。オンラインフォームから情報を取得してから、再度送信する必要があります(変更されました)。ページは「windows-1251」にあり、私のリクエストでは次のように取得します。

{
         // used to build entire input
        StringBuilder sb = new StringBuilder();

        // used on each read operation
        byte[] buf = new byte[8192];

        // prepare the web page we will be asking for
        HttpWebRequest request = (HttpWebRequest)
            WebRequest.Create(url);

        // execute the request
        HttpWebResponse response = (HttpWebResponse)
            request.GetResponse();

        // we will read data via the response stream
        Stream resStream = response.GetResponseStream();

        string tempString = null;
        int count = 0;

        do
        {
            // fill the buffer with data
            count = resStream.Read(buf, 0, buf.Length);

            // make sure we read some data
            if (count != 0)
            {
                // translate from bytes to ASCII text
                tempString = Encoding.GetEncoding(1251).GetString(buf, 0, count);

                // continue building the string
                sb.Append(tempString);
            }
        }
        while (count > 0); // any more data to read?

        // print out page source
        // Console.WriteLine(sb.ToString());
        return sb.ToString();

その後、ページを削除してデータを配列に取得し、再度サイトに投稿する必要がありますが、エンコードする必要があります。System.Net.WebUtility.UrlEncode を使用してエンコードを行いますが、スクリプトと firefox からはまったく異なる結果が得られます (改ざんデータを使用してオリジナルを取得しました)。そのため、どんな助けやアイデアも大歓迎です。ところで、(スクリプトから) エンコードされたデータを取得した後、http://www.url-encode-decode.com/でオンラインで試してみましたが、UTF-8 のみが適切な結果を返しました。だから私はそれを1251に変換しなければならないと推測し、それをやってみましたが、それはまだ意味不明で、本来あるべきものとは完全に異なっていました. )

編集:

Expected: %E3%F0%E0%E4+%D1%EE%F4%E8%FF
Actual: %D0%B3%D1%80%D0%B0%D0%B4+%D0%A1%D0%BE%D1%84%D0%B8%D1%8F
f2[11] = град София
-       f2  {string[180]}   string[]
    [0] "127.0.0.1" string
    [1] "1348247257"    string
    [2] "1n132135075318435" string
    [3] "151669n1"  string
    [4] "0" string
    [5] null    string
    [6] null    string
    [7] null    string
    [8] "2" string
    [9] "12871449760521116" string
    [10]    "14"    string
    [11]    "град София"    string
    [12]    "Враждебна" string
    [13]    "42.707984,23.41341,0~бул. Ботевградско шосе"   string
    [14]    "42.7100653,23.4274006,1"   string
4

1 に答える 1

4
于 2012-09-24T07:53:14.653 に答える