Domanda

Sto usando un servizio web per passare informazioni da un mucchio di vecchie pagine ASP a un database. Il problema è che usando httpGet, devo codificare le informazioni in modo che possano essere passate in modo sicuro.

Tutto funziona come un sogno, tranne per il fatto che lettere scandinave come & # 228; & # 246; e & # 229; per esempio escono come quadrati. Ora non so nemmeno se questo abbia a che fare con le impostazioni della lingua IIS dell'azienda (non riesco a toccarle) o qualcosa del genere, ma mi chiedo se c'è un modo per forzare la asp-page a utilizzare una codifica specifica e quindi forzare il servizio web asp.net a decodificare con lo stesso set di caratteri, senza qualsiasi tipo di impostazione del server tra l'ottenere la possibilità di mescolare tutto?

Ho provato a guardarmi intorno, ma non ho trovato esempi chiari di come puoi farlo. Per favore, mantieni le risposte semplici, sono solo un principiante al tirocinio qui. Grazie per l'aiuto!

Modifica Scuse. Non includeva il codice perché era così semplice che non pensavo che avrebbe rivelato comunque nulla. Qui:

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

web server:

<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

Comunque, grazie per l'aiuto. Lo esaminerò di più, ma come al solito lo stress e la fretta mi stanno costringendo ad andare avanti. Ho scritto un semplice codice per crittografare manualmente le lettere scandinave più utilizzate e decrittografarle nel server Web. Funziona bene finora, spero solo che non ci siano complicazioni. Volevo solo le lettere finlandesi di base & # 228 ;, & # 246; e & # 229; Comunque. :)

Ho pensato che esistesse un metodo semplice per forzare la codifica su un set di caratteri specifico che non riuscivo a trovare. Tendo ad essere terribile nel trovare informazioni da solo.

È stato utile?

Soluzione

Senza scavare nel codice, non posso darti un " eccolo qui sulla linea X " risposta, ma il problema che stai affrontando è quello della codifica. Esistono diversi modi per codificare le stringhe, da ASCII a UTF-8 a Unicode completo. Ciò significa che il potenziamento della codifica Unicode completa potrebbe risolvere il tuo problema.

Per fare ciò, puoi creare esplicitamente i tuoi flussi (e / o lettori / scrittori) con una codifica. Il metodo è diverso per diversi tipi di oggetti e, non conoscendo il tuo codice, non posso darti una risposta esplicita.

Con ASP, potresti comunque ottenere spazzatura. Ed è passato così tanto tempo da quando ho giocato con l'ASP classico, avrei dovuto scavare per ottenere una risposta lì. Fortunatamente, sembra che tu abbia un modo per testare l'ASP per assicurarti che arrivino i caratteri corretti, quindi prova. Se funziona, concentrati sul servizio web.

Altri suggerimenti

Questa recente domanda che ho posto chiarisce ulteriormente questo tipo di problema con UrlEncoding:

/ questions / 696659 / why-is-this-comparendo-in-my-c -strings-194163

Potrebbe rivelarsi utile per te o per gli altri colpire questo problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top