Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

WinHttp.WinHttpRequest και Ελληνικά

Îåêßíçóå áðü ôï ìÝëïò KelMan. Τελευταία δημοσίευση από το μέλος KelMan στις 08-03-2007, 01:08. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  22-01-2007, 13:35 23843

    WinHttp.WinHttpRequest και Ελληνικά

    Χρησιμοποιώ το WinHttp.WinHttpRequest object από client-side κώδικα, περίπου όπως παρακάτω:



    <script type="text/vbscript">
    <!--
    Function GetText(strUrl) 'As String
        Dim web
        Set web = CreateObject("WinHttp.WinHttpRequest.5.1")
       
        web.Open "GET", strURL, false
        web.setRequestHeader "Content-Type", "text/html; charset=windows-1253"
        web.Send 
                
        GetText = web.ResponseText
        Set web = Nothing
    End Function
    -->
    </script>

    Και παρακάτω, μέσα από document.write, καλώ την GetText περνώντας το ανάλογο URL. Αυτά που μου επιτρέφει το ULR είναι plain text όμως Ελληνικά... γιοκ! Το ίδιο URL αν απλά το δώσω μέσα από τον IE, μου φέρνει κανονικά το κείμενο με Ελληνικά. Έχω δοκιμάσει διάφορα Content-Type αλλά δεν είδα φως. Έχει κανείς καμιά ιδέα;


    Vir prudens non contra ventum mingit
  •  22-01-2007, 14:00 23847 σε απάντηση της 23843

    Απ: WinHttp.WinHttpRequest και Ελληνικά

    - Ποιο είναι το encoding της σελίδας που κατεβάζεις με HttpRequest?

    - Ποιο είναι το encoding της σελίδας στην οποία γράφεις το Response?
    MSc Konstantinos Pantos
    MCP Software Engineer
    http://blog.pantos.name
    http://kostas.pantos.name
  •  22-01-2007, 14:11 23848 σε απάντηση της 23847

    Απ: WinHttp.WinHttpRequest και Ελληνικά

    Δεν κατεβάζω σελίδα με το HttpRequest. Είναι plain text το περιεχόμενο. Φαντάσου κάτι ως

    <html>
    κείμενο κείμενο κείμενο κείμενο κείμενο κείμενο
    </html>


    Για το destination encoding θα το κοιτάξω...


    Vir prudens non contra ventum mingit
  •  22-01-2007, 16:42 23854 σε απάντηση της 23843

    Απ: WinHttp.WinHttpRequest και Ελληνικά

    Πρέπει να προσθέσεις στα headers σου και το κατάλληλο Accept-Charset, π.χ.
    web.setRequestHeader "Accept-Charset", "windows-1253;q=1"

    Νατάσα Μανουσοπούλου
  •  22-01-2007, 17:01 23856 σε απάντηση της 23854

    Απ: WinHttp.WinHttpRequest και Ελληνικά

    Πρόσθεσα αυτό που είπες Νατάσα, διόρθωσα και το destination encoding αλλά τίποτα. Και πάλι δεν δουλεύει...
    Vir prudens non contra ventum mingit
  •  22-01-2007, 19:48 23866 σε απάντηση της 23856

    Απ: WinHttp.WinHttpRequest και Ελληνικά

    Πιστεύω ότι το πρόβλημα είναι στο Response.Codepage στο server και ότι και να κάνει στο Request το αποτέλεσμα δεν θα αλλάξει...

    Από την άλλη μεριά, μπορούμε να κάνουμε μια μικρή "ζαβολιά" στο client...



    <script type="text/vbscript">
    <!--
    Function GetText(strUrl) 'As String
        Dim web, tmpBuffer, iCounter
       
        Set web = CreateObject("WinHttp.WinHttpRequest.5.1")
       
        web.Open "GET", strURL, false
        web.Send
               
        tmpBuffer = web.ResponseText
        GetText = ""
        for iCounter=1 to Len(tmpBuffer)
            if ascW(mid(tmpBuffer, iCounter, 1))>127 then
                GetText = GetText & chr(ascW(mid(tmpBuffer, iCounter, 1)))
            else
                GetText = GetText & mid(tmpBuffer, iCounter, 1)
            end if
        next
        
        Set web = Nothing
    End Function
    -->
    </script>

    Έτσι αλλάζουμε την κωδικοσελίδα της απάντησης στα ελληνικά... Big Smile

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  23-01-2007, 00:43 23873 σε απάντηση της 23866

    Απ: WinHttp.WinHttpRequest και Ελληνικά

    Πολύ καλά τα λες! Ευτυχώς που το cheat παίζει μια χαρά Smile

    Παλιά λέγαμε "Garbage in, garbage out". Τώρα, έχει γίνει το ανάποδο! "Garbage out, garbage in"
    Vir prudens non contra ventum mingit
  •  08-03-2007, 01:08 26092 σε απάντηση της 23873

    Απ: WinHttp.WinHttpRequest και Ελληνικά

    WinHttpRequest saga...

    Σε συνέχεια των προηγουμένων, τελικά δεν φταίει ο server. Ανέβασα μια html σελίδα με ελληνικά και το παρακάτω meta:

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1253" />

    Τώρα, υποτίθεται ότι το WinHttpRequest.ResponseText μετατρέπει αυτόματα τα data σε Unicode string. Αυτό γίνεται βάσει του charset attribute στο Content-Type response header. Αν αυτός δεν υπάρχει ή αν υπάρχει αλλά δεν έχει charset attribute, τότε χρησιμοποιεί το default ISO-8859-1. Πράγμα που σημαίνει ότι το

    // Instantiate a WinHttpRequest object.
    var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
    // Initialize an HTTP request.
    WinHttpReq.Open("GET", "http://www.intrip.gr/test/test.html", false);
    // Send the HTTP request.
    WinHttpReq.Send();
    // Display the response text.
    WScript.Echo( WinHttpReq.ResponseText);

    θα πρέπει να παίζει σωστά, εμφανίζοντας τα Ελληνικά... Έλα μου ντε που δεν το κάνει.

    Έχει κανείς καμιά ιδέα;

     


    Vir prudens non contra ventum mingit
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems