• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

인코딩 디코딩

20.07.17 14:19 작성 조회수 379

0

인코딩을 하는이유와 인코딩하고 다시 디코딩 한 이유가 조금 이해가안갑니다.. ( 다시 디코딩을 했는데 인코딩 했을때와 같은 UTF-8 입니다.. 같은 UTF-8 인데 다시 할 이유가 있나요?..)

조금 상세하게 설명 해주실수있나요??

  try {

String data1 = URLEncoder.encode("문자열1", "UTF-8");

String data2 = URLEncoder.encode("문자열2", "UTF-8");

...

  String str =  URLDecoder.decode(cookie.getValue(), "UTF-8");

답변 1

답변을 작성해보세요.

1

웹 프로토콜에 보면 서버와 클라이언트간의 데이터는 영문, 숫자, 일부 특수문자만 가능합니다. 한글과 같은 유니코드 문자와 공백은 허용하지 않습니다. 그래서 지원하지 않는 문자들을 코드화 시켜 유니코드글자와 공백 등을 다른 문자로 대체한 문자열을 만들어 사용하게 됩니다. 유니코드 문자열을 코드화 시키는 것을 인코딩, 이걸 다시 복원하는 것이 디코딩입니다. 클라이언트에게 보낼 때 서버에서 인코딩 해서 보내고 클라이언트가 보낼때는 인코딩되어 있는 문자열을 디코딩해서 사용해야 합니다. 파라미터나 응답결과에 있는 문자열들은 자동으로 인코딩 디코딩을 하기 때문에 문제가 되지 않습니다. 허나 쿠키의 경우는 자동으로 처리가 되지 않아 직접 작업을 해줘야 합니다. 이건 웹 표준에 정해져 있는 프로토콜이므로 왜 이렇게 해야하나~ 보단 이렇게 해야 한다...고 생각하셔야 합니다.