Heim >Backend-Entwicklung >C#.Net-Tutorial >.net verwendet Cookies, um verstümmelte Zeichen zu generieren
Dies ist ein Problem, auf das ich tatsächlich gestoßen bin
Es war in Ordnung, als es lokal getestet wurde, aber als das Ergebnis auf iis veröffentlicht wurde, wurde das Lese-Cookie verstümmelt
Nachdem ich es am Anfang verwendet habe A Eine sehr dumme Möglichkeit besteht darin, das Cookie mit chinesischen Schriftzeichen am Ende zu platzieren, bevor es gespeichert wird. Dies löst zumindest ein Problem, nämlich dass Cookies, die keine chinesischen Schriftzeichen enthalten, normal gelesen werden können. Es kann sein, dass das Cookie durch verstümmelte chinesische Schriftzeichen verursacht wird Byte-Lesung ist verstümmelt.
Ich habe die Methode später im Internet gefunden und als Referenz eingefügt.
Um zu verhindern, dass dieser Artikel gelöscht wird .
Das Folgende ist der Code zum Schreiben des Cookies
[csharp] view plain copy
HttpCookie cookie = new HttpCookie("username");
cookie. Value = "Zhang San,14,images/1.jpg";
cookie.Expires = DateTime.Now.AddDays(1); ;
Das Folgende ist der Code zum Lesen von Cookies
[csharp] view plain copy
if (Request.Cookies["username"]!=null)
{
response.write (username); . Egal was die Ursache ist, wir können sie durch Codierung lösen
Ändern Sie den im Cookie oben geschriebenen Code
[csharp] view plain copy
HttpCookie-Cookie = neu HttpCookie("username");
cookie.Value = HttpUtility.UrlEncode("Zhang San,14,images/1.jpg",Encoding.GetEncoding(" UTF=8")); 🎜> cookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(cookie);
Ändern Sie den obigen Lesecode, um Cookies zu erhalten
[csharp] Nur Kopie anzeigen
if (Request.Cookies["username"]!=null)
username. =HttpUtility.UrlDecode(Request.Cookies["user name"].Wert,Kodierung .GetEncoding("UTF-8")); 🎜>
Stellen Sie sich das so vor: Verwenden Sie beim Speichern und Lesen von Cookies utf8, und es werden keine verstümmelten Zeichen mehr angezeigt, egal ob auf dem Server oder lokal es