Microsoft가 .NET을 출시하고 대규모 홍보 및 대중화를 수행한 후 ASP.NET은 점차 정보 시스템 개발의 주류에 들어갔습니다. 그러나 동시에 ASP로 개발된 기존 시스템은 통합을 앞두고 있는데, ASP와 ASP.NET을 통합할 때 중국어 COOKIES 정보를 서로 공유할 수 없다는 문제가 있습니다. ASP.NET을 사용하여 쓰기 ASP를 사용하여 중국어 COOKIES 정보를 읽은 후 읽은 내용이 중국어가 아닌 잘못된 문자로 표시되었습니다.
나중에 정보를 검색하고 꾸준히 연습한 결과 마침내 문제의 근본 원인을 찾았습니다. ASP에서 중국어 COOKIES 정보를 올바르게 읽을 수 없는 이유는 중국어 인코딩 형식이 다르기 때문입니다.
개발 프로젝트 Web.config 구성 파일에는 다음 정보가 포함되어 있습니다.
<!-- 세계화 이 섹션에서는 응용 프로그램의 세계화 설정을 지정합니다. -->
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
이를 통해 프로젝트의 특별한 구성 없이도 시스템 내 중국 COOKIES 정보가 "utf-8" 인코딩 방식을 통해 전송되는 것을 알 수 있습니다. , ASP의 중국어 COOKIES 정보는 기본적으로 "GB2312" 인코딩 방식을 통해 전송되므로 ASP와 ASP.NET 간의 중국어 COOKIES 정보는 기본적으로 서로 공유할 수 없지만 다음 방법:
COOKIE를 작성하려면 다음 방법을 사용하십시오.
'---------------------------- -------- ----------
' 이름: WriteCookie(ByVal strCookieName을 문자열로, ByVal strKeyName을 문자열로, ByVal strKeyValue를 문자열로)
'매개변수:
'[ByVal] strCookieName - 쿠키 이름
' [ByVal] strKeyName - 키 이름
'[ByVal] strKeyValue - 키 값입니다.
' 반환: 문자열
'------------------------------------------------ - --------------
공용 함수 WriteCookie(ByVal strCookieName을 문자열로, ByVal strKeyName을 문자열로, ByVal strKeyValue를 문자열로) 문자열로
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
End 기능
위의 방법을 사용하면 ASP.NET에서 작성한 중국어 COOKIES 정보를 ASP가 올바르게 읽을 수 있지만 동시에 ASP.NET에서 읽은 중국어 COOKIES 정보를 프런트 데스크에 직접 표시하면 깨져서 표시됩니다.
ASP.NET에서는 "GB2312" 인코딩으로 중국어 정보를 표시하기 위해 "utf-8" 인코딩을 사용하므로 다음 방법을 사용하면 첫 페이지에 중국어 정보를
올바르게 표시할 수 있습니다.
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)
위의 방법은 ASP와 ASP.NET 간에 중국어 COOKIES 정보를 공유할 수 없는 문제를 해결합니다. 그러나, 인코딩 방법을 수정하여 수정할 수 있는지 궁금합니다. Web.config 구성 파일에서 "utf-8" 인코딩 방법을 "GB2312" 인코딩 방법으로 변경하면 위의 문제가 해결될 수 있습니다.
ASP.NET에서는 일반적으로 다음 방법을 통해 COOKIES 정보를 지웁니다.
Sub CleanCookies()
Dim i를 정수로 표시
System.Web.HttpCookie로 희미한 쿠키
i = 0의 경우 System.Web.HttpContext.Current.Request.Cookies.Count - 1
쿠키 = 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)
다음
End Sub
그러나 위의 방법으로 COOKIES 정보를 지우고 다시 로그인하면 ASP.NET의 COOKIES를 읽을 수 없게 됩니다. 이유는 알 수 없습니다. 그러나 위의 COOKIES 지우기 방법에 다음 명령문을 추가합니다. 정보를 사용하면 COOKIES 정보를 올바르게 지울 수 없는 문제를 해결할 수 있습니다. 질문:
System.Web.HttpContext.Current.Response.Cookies.Clear()
위 내용은 직장에서의 일부 경험을 요약한 것입니다. .제 말을 고쳐주셨으면 좋겠습니다!