>  기사  >  백엔드 개발  >  .net은 쿠키를 사용하여 잘못된 문자를 생성합니다.

.net은 쿠키를 사용하여 잘못된 문자를 생성합니다.

巴扎黑
巴扎黑원래의
2016-12-19 15:47:151408검색

제가 실제로 겪었던 문제입니다

로컬에서 테스트할 땐 괜찮았는데 결과가 iis에 공개되자 읽기 쿠키가 깨졌습니다

처음에 사용해본 후 A 아주 어리석은 방법은 한자가 포함된 쿠키를 저장하기 전에 마지막에 넣는 것입니다. 이렇게 하면 적어도 한자가 포함되지 않은 쿠키를 정상적으로 읽을 수 있다는 문제가 해결됩니다.

나중에 인터넷에서 방법을 찾아서 참고용으로 붙여넣었습니다.

이 글이 삭제되는 것을 방지하기 위해 붙여넣었습니다. .

다음은 쿠키를 작성하는 코드입니다

[csharp] view plain copy

HttpCookie cookie = new HttpCookie("username")

cookie.Value = "장산,14,images/1.jpg";

cookie.Expires = DateTime.Now.AddDays(1)

Response.Cookies.Add(cookie) ;

다음은 쿠키를 읽는 코드입니다

[csharp] 일반 복사본 보기

if (Request.Cookies["username"]!=null)

{

                                                                                                                                                                        문자열 사용자 이름 = Request.Cookies["username"]        

가끔 읽어보세요. 원인이 무엇이든 쿠키 값 중 중국어 부분이 깨져 보일 수 있습니다. 코딩으로 해결 가능

위 쿠키에 적힌 코드 변경

[csharp] view plain copy

HttpCookie cookie = new 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);

쿠키를 가져오도록 위의 읽기 코드 변경

[csharp] 일반 사본 보기

if (Request.Cookies["username"]!=null)

                                       username(Request.Cookies["username"].Value,Encoding.GetEncoding("UTF -8" )); 이렇게 생각해보세요. 쿠키를 저장하고 읽을 때 utf8을 사용하면 서버에 있든 로컬에 있든 더 이상 문자가 깨지지 않습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.