Nachdem Microsoft .NET eingeführt und groß angelegte Werbung und Popularisierung durchgeführt hatte, trat ASP.NET allmählich in den Mainstream der Entwicklung von Informationssystemen ein. Gleichzeitig steht das mit ASP entwickelte alte System vor einem Problem: Wenn ASP und ASP.NET miteinander integriert werden, können die chinesischen COOKIES-Informationen nicht miteinander geteilt werden Verwenden von ASP.NET zum Schreiben Nach dem Lesen der chinesischen COOKIES-Informationen mit ASP wurden verstümmelte Zeichen statt chinesischer Zeichen gelesen.
Später, nachdem ich nach Informationen gesucht und ständig geübt hatte, fand ich schließlich die Ursache des Problems. Der Grund, warum chinesische COOKIES-Informationen in ASP nicht korrekt gelesen werden können, ist, dass das chinesische Codierungsformat unterschiedlich ist.
Die Web.config-Konfigurationsdatei des Entwicklungsprojekts enthält die folgenden Informationen:
<!-- Globalisierung In diesem Abschnitt werden die Globalisierungseinstellungen der Anwendung festgelegt. ->
<globalization requestEncoding="utf-8" ResponseEncoding="utf-8" />
Daraus ist ersichtlich, dass die chinesischen COOKIES-Informationen im System ohne spezielle Konfiguration des Projekts über die Codierungsmethode „utf-8“ übertragen werden Standardmäßig werden die chinesischen COOKIES-Informationen in ASP standardmäßig über die Codierungsmethode „GB2312“ übertragen, sodass die chinesischen COOKIES-Informationen zwischen ASP und ASP.NET standardmäßig nicht gemeinsam genutzt werden können, aber durch das gelöst werden können folgende Methoden:
Verwenden Sie die folgende Methode, um COOKIE zu schreiben:
'-------------------------- -------- --------
' Name: WriteCookie(ByVal strCookieName As String, ByVal strKeyName As String, ByVal strKeyValue As String)
'Parameter:
'[ByVal] strCookieName – Cookie-Name
' [ByVal] strKeyName – Schlüsselname
'[ByVal] strKeyValue – Schlüsselwert.
' Rückgabe: String
'------------------------------------------------ - --------------
Öffentliche Funktion WriteCookie(ByVal strCookieName As String, ByVal strKeyName As String, ByVal strKeyValue As String) As String
Dim objEnc As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312")
strKeyValue = System.Web.HttpUtility.UrlEncode(strKeyValue, objEnc)
System.Web.HttpContext.Current.Response.Cookies(strCookieName)(strKeyName) = strKeyValue
Endfunktion
Die obige Methode ermöglicht es ASP, die von ASP.NET geschriebenen chinesischen COOKIES-Informationen korrekt zu lesen. Wenn jedoch die in ASP.NET gelesenen chinesischen COOKIES-Informationen direkt an der Rezeption angezeigt werden, werden sie gleichzeitig als verstümmelt angezeigt Dies liegt daran, dass ASP.NET die Kodierung „utf-8“ verwendet, um chinesische Informationen in der Kodierung „GB2312“ anzuzeigen. Sie können die folgende Methode verwenden, um chinesische Informationen korrekt auf der Startseite anzuzeigen:
Dim uName As String = System.Web.HttpContext. Current.Server.UrlDecode(System.Web.HttpContext.Current.Request.Cookies(strCookieName)(strKeyName))
Dim objEnc As System.Text.Encoding = System.Text.Encoding.GetEncoding("GB2312")
uName = System.Web.HttpUtility.UrlDecode(uName, objEnc)
Die obige Methode löst das Problem, dass chinesische COOKIES-Informationen nicht zwischen ASP und ASP.NET geteilt werden können. Ich frage mich jedoch, ob sie durch Ändern der Codierungsmethode in geändert werden können Web.config-Konfigurationsdatei. Durch Ändern der Kodierungsmethode „utf-8“ in „GB2312“ kann das obige Problem behoben werden. Sie können es versuchen und mir das Ergebnis mitteilen.
In ASP.NET löschen wir COOKIES-Informationen im Allgemeinen mit den folgenden Methoden:
Sub CleanCookies()
Dim i als Ganzzahl
Cookie als System.Web.HttpCookie dimmen
Für i = 0 To System.Web.HttpContext.Current.Request.Cookies.Count - 1
cookie = System.Web.HttpContext.Current.Request.Cookies(i)
System.Web.HttpContext.Current.Response.Cookies(CStr(cookie.Name)).Value = ""
System.Web.HttpContext.Current.Response.Cookies(CStr(cookie.Name)).Expires = DateAdd(DateInterval.Day, -1, Now)
Nächste
End Sub
Wenn Sie jedoch die COOKIES-Informationen mit der oben genannten Methode löschen und sich erneut anmelden, kann ASP die COOKIES von ASP.NET nicht lesen. Der Grund ist jedoch unbekannt Informationen können das Problem lösen, dass die COOKIES-Informationen nicht korrekt gelöscht werden können.
DasObige
ist eine Zusammenfassung einiger meiner Erfahrungen bei der Arbeit . Ich hoffe, Sie korrigieren mich!