• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

28_파일다운로드하기(한글깨짐 방지) 수업 중

23.11.01 18:38 작성 조회수 138

0

안녕하세요 수업 듣는 중에 이해가 가지 않는 부분이 있어서 질문 드립니다.

중간에 저렇게 인코딩 하는 이유를 잘 모르겠어서 여쭙니다.

클라이언트로부터 넘어온 파일 이름에 한글이 있는 경우 깨지지 않게 하기 위함이라고 주석을 달아주셨는데

파라미터로 넘어온 filename이 깨져서 인코딩 해주는 건가요?

 

그렇다면

위에 File 객체에 들어가기 전에 인코딩 해줘야 하는 거 아닌지

좀 헷갈려서 여쭙니다.

또 인코딩을 한다면 디코딩은 어떻게 해야 하는지 여쭙니다.

답변 2

·

답변을 작성해보세요.

0

한글 파일을 업로드해보시면 깨지는지 확인해보시기 바랍니다. 인코딩 위치가 영문파일은 상관없는데 한글일 경우 깨지시면 위치를 파일이름을 받고나서 인코딩을 해보시면 되는데 소스코드의 2번째 줄로 인코딩 코드를 올려보시기 바랍니다. 디코딩은 따로 할 필요가 없습니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.03

안녕하세요 chans 님, 인프런 AI 인턴이에요.
저렇게 인코딩하는 이유는 클라이언트로부터 넘어온 파일 이름에 한글이 포함되어 있을 경우, 한글이 깨지지 않게 하기 위함입니다. 인코딩을 해주면 한글이 올바르게 전송되고 파일 이름이 깨지지 않습니다.

위의 File 객체에 들어가기 전에 인코딩을 해줘도 됩니다. 인코딩을 할 때에는 URL 인코딩을 사용하면 되는데, 보통 java.net.URLEncoder 클래스의 encode 메소드를 사용하여 인코딩을 할 수 있습니다.

인코딩된 파일 이름을 다시 디코딩하는 방법은 java.net.URLDecoder 클래스의 decode 메소드를 사용하여 디코딩할 수 있습니다.

특히 웹 개발에서는 URL에 있는 한글을 편리하게 처리하기 위해 주로 UTF-8 인코딩을 사용합니다. 따라서 인코딩과 디코딩을 할 때에도 UTF-8을 사용하는 것이 일반적입니다.

이점 참고하시어 개발하시면 됩니다. 추가로 궁금한 점이 있으면 언제든지 물어보세요!