2009-03-12 10 views
2

Ich benutze einen Web-Service für die Weitergabe von Informationen aus einer Reihe von alten ASP-Seiten an eine Datenbank. Problem ist, dass mit httpGet, muss ich die Informationen verschlüsseln, so dass es sicher weitergegeben werden kann.Klassisches Asp zu Asp.Net urlEncoding-Problem

Alles funktioniert wie ein Traum, abgesehen davon, dass skandinavische Buchstaben wie ä ö und å zum Beispiel als Quadrate erscheinen. Jetzt weiß ich nicht einmal, ob das mit den Spracheinstellungen der Firma IIS zu tun hat (kann sie nicht berühren) oder so, aber ich frage mich, ob es eine Möglichkeit gibt, die asp-Seite zu zwingen, eine bestimmte Kodierung zu verwenden, und dann zwingen Sie den asp.net Web-Service mit dem gleichen Zeichensatz zu entschlüsseln, ohne jede Art von Server-Einstellungen dazwischen die Chance bekommen, alles zu mischen?

Ich habe versucht, mich umzusehen, fand aber keine klaren Beispiele dafür, wie Sie das genau machen können. Bitte halten Sie die Antworten einfach, ich bin nur ein Anfänger für ein Praktikum hier. Danke für die Hilfe!

Bearbeiten: Entschuldigung. Ich habe den Code nicht eingefügt, weil es so einfach war, dass ich nicht gedacht hätte, dass es irgendwas enthüllen würde. Hier:

.asp

function loginfo() 
    Dim text 
    text = "ääböö" 
    text = Server.URLENCODE(text) 

    message = "http://server1/logger_webservice/service.asmx/test_Event?" & _ 
      "userID=" & userID 
    Set objRequest = Server.createobject("MSXML2.XMLHTTP") 

    With objRequest 
    .open "GET", message, False 
    .setRequestHeader "Content-Type", "text/xml" 
    .send 
    End With 

    loginfo = objRequest.responseText 
end function 

Webserver:

<WebMethod()> _ 
Public Function test_Event(ByVal userId As String) As Boolean 
    Dim kirj As StreamWriter 
    kirj = File.CreateText("C:\Inetpub\server1\Logger_WebService\test_logEvent.txt") 

    userId = Server.UrlDecode(userId) 

    kirj.WriteLine("userId = " & userId) 
    kirj.Close() 
    kirj.Dispose() 
End Function 

Trotzdem, vielen Dank für die Hilfe. Ich werde mir das genauer ansehen, aber wie immer zwingt mich Stress und Eile, weiterzumachen. Ich habe einen einfachen Code geschrieben, um die am häufigsten verwendeten skandinavischen Buchstaben manuell zu verschlüsseln und auf dem Webserver zu entschlüsseln. Funktioniert soweit, ich hoffe nur, dass sich keine Komplikationen ändern. Wollte nur die grundlegenden finnischen Buchstaben ä, ö und å. :)

Ich dachte nur, es gäbe eine einfache Methode, um die Codierung auf einen bestimmten Zeichensatz zu erzwingen, den ich einfach nicht finden konnte. Neigen dazu, schrecklich alleine Informationen zu finden.

Antwort

0

Ohne in den Code zu graben, kann ich Ihnen nicht eine "hier ist in der Leitung X" Antwort geben, aber das Problem, mit dem Sie es zu tun haben, ist eines der Codierung. Es gibt mehrere Möglichkeiten, Zeichenfolgen zu codieren, von ASCII bis UTF-8 bis hin zu vollständigem Unicode. Was dies bedeutet, ist die vollständige Unicode-Codierung könnte Ihr Problem lösen.

Um dies zu tun, können Sie explizit Ihre Streams (und/oder Leser/Schreiber) mit einer Codierung erstellen. Die Methode ist für verschiedene Arten von Objekten unterschiedlich, und wenn Sie Ihren Code nicht kennen, kann ich Ihnen keine explizite Antwort geben.

Mit ASP erhalten Sie möglicherweise immer noch Müll. Und es ist so lange her, dass ich mit klassischem ASP gespielt habe, ich müsste graben, um eine Antwort zu bekommen. Glücklicherweise klingt es so, als ob Sie eine Möglichkeit haben, den ASP zu testen, um sicherzustellen, dass die richtigen Zeichen durchkommen, also testen Sie. Wenn es funktioniert, konzentrieren Sie sich auf den Webdienst.

Verwandte Themen