본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Java(자바)

자바 기본 인코딩 (with 파일 입출력)

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 4. 25.

 

 

저장된 파일이나 Blob 형태의 데이터를 읽어들인 경우에 기본 인코딩은 설치된 Java 인코딩 설정에 의해서 영향을 받으며, Java의 기본 인코딩 설정은 OS에 의해서 영향을 받아서 UTF-8이 아닌경우가 종종 존재 한다.

 

JVM이 동작을 하게되면 OS의 기본인코딩을 따른다고하니까..뭐..윈도우나 맥에서는 한글데이터가 그다지 깨지는 모습을 볼 수 없는데..

특히 좀 옛날스러운 서버에서 파일을 읽은 경우 같은 코드임에도 불구하고 한글이 깨져서 나온다.

즉, 개발환경에서는 잘만 보이던 한글이 설치한 서버에서는 깨지거나 안보 일 수 있다.

 

ByteArrayInputStream isr =  new ByteArrayInputStream('Byte로읽어온파일데이터');
InputStreamReader inss = new InputStreamReader(isr);

 

위 코드처럼 같은 코드인데도 불구하고 한글이 막 깨져서 나오는 경우에는 간단히 스트림을 읽을 때 기본 defualt를 사용하지 말고 지정된 캐릭터셋을 사용하도록 지정하면 된다.

InputStreamReader inss = new InputStreamReader(isr, "UTF-8"); //EUC-KR도 상관없다.

 

파일 입출력과 관련된 기능을 만드는 경우에는 위 코드처럼 왠만하면 인코딩 설정을 아에 기본으로 설정하는 편이 좋은 것 같다. 개발환경에서는 잘만 보이던 한글이 실제 설치하는 서버에서 동작을 하지 않으면 난감하니 말이다.

 

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글