Frage

Ich bin mit einem Web-Service-Informationen von einem Haufen alter ASP-Seiten in eine Datenbank für das Bestehen. Das Problem ist, dass die Verwendung HttpGet, ich brauche die Informationen zu kodieren, so dass es sicher übergeben werden kann.

Alles funktioniert wie ein Traum, mit Ausnahme der Tatsache, dass skandinavische Buchstaben wie ä ö und å zum Beispiel kommen als Quadrate. Nun weiß ich nicht einmal, ob dies mit der Firma IIS Spracheinstellungen zu tun (können sie nicht berühren) oder so etwas, aber ich frage mich, ob es einen Weg, um die ASP-Seite zu zwingen, eine bestimmte Codierung zu verwenden, und danach müssen sie die asp.net Webservice mit dem gleichen Zeichensatz, ohne jede Art von Servereinstellungen zu dekodieren dazwischen die Chance bekommen, es zu mischen alles zusammen?

Ich habe versucht, um zu sehen, aber fand keine klaren Beispiele für genau, wie Sie dies tun können. Bitte halten Sie die Antworten einfach, ich bin nur ein Anfänger auf Praktikum hier. Danke für die Hilfe!

Bearbeiten: Apologies. Haben Sie nicht den Code enthalten, weil es so einfach war ich nicht glaube, es sowieso nichts verraten 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

Wie auch immer, vielen Dank für Hilfe. Ich werde in diesem suchen mehr, aber wie üblich, Stress und Eile zwingt mich zu bewegen. Ich schrieb einen einfachen Code, um die am häufigsten verwendeten skandinavischen Buchstaben manuell zu verschlüsseln, und entschlüsselt sie in dem Web-Server. Funktioniert so weit in Ordnung, ich hoffe nur, es gibt keine Komplikationen ändern auf. Ich wollte nur die grundlegenden finnischen Buchstaben ä, ö und sowieso å. :)

Ich dachte nur, dass eine einfache Methode war die Codierung zu einem bestimmten Zeichensatz zu erzwingen, dass ich konnte einfach nicht finden. Tend bei der Suche nach Informationen über meine eigenen schrecklich sein.

War es hilfreich?

Lösung

Ohne in den Code zu graben, kann ich Ihnen nicht ein „hier ist es auf der Linie X“ Antwort, aber das Problem Sie es zu tun ist eine der Codierung. Es gibt mehrere Möglichkeiten der Codierung Strings von ASCII in UTF-8 in ausgewachsenen Unicode. Was dies bedeutet ist, volle Unicode-Codierung Ifforcing könnte Ihr Problem lösen.

Um dies zu tun, können Sie explizit Ihre Streams erstellen (und / oder Leser / Schreiber) mit einer Codierung. Das Verfahren für die verschiedenen Arten von Objekten unterscheidet, und der Code nicht zu wissen, kann ich nicht geben Sie eine explizite Antwort.

Mit ASP, können Sie immer noch seinen Müll bekommen, aber. Und hat es so lange her, dass ich mit dem klassischen ASP gespielt, hätte ich graben dort eine Antwort zu bekommen. Zum Glück, es klingt wie Sie eine Möglichkeit haben, das ASP zu testen, die richtigen Zeichen kommen durch, so Test zu gewährleisten. Wenn es funktioniert, konzentrieren sich auf die Web-Service.

Andere Tipps

Diese letzte Frage, die ich Schuppen weiteres Licht auf diese Art von Problem mit urlencoding fragte:

/ Fragen / 696.659 / warum-ist-das erscheinende-in-my-c -Strings-194163

Es kann sich selbst oder andere als nützlich erweisen, um dieses Problem zu schlagen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top