Do Not Think!!!

최근 사진

2011/12 시즌 2012년 2월 18-19일 용평리조트
2011/12 시즌 2012년 1월 27-28일 휘닉스파크
사무실 이사
2011/12시즌 2011년 12월 17일 휘닉스파크
2011/12시즌 2011년 12월 10일 휘닉스파크
2011/12시즌 2011년 12월 4일 휘닉스파크
2011/12시즌 2011년 11월 26일 휘닉스파크
2011년 8월 뉴질랜드 여행
2011년 5월 4일 ~ 7일 홍콩 워크샵 사람
2011년 5월 4일 ~ 7일 홍콩 워크샵 넷 째날

최근 트랙백

Total226668
Today100
Yesterday150
자바 프로그래밍을 하다보면 다음과 같이 String을 만들때가 있습니다.

코드 보기


보통 Stream에서 String을 만들경우 이런 방법을 사용합니다.

Java API를 보면 다음과 같은 말이 나옵니다.
Constructs a new String by decoding the specified array of bytes using the platform's default charset.
간단하게 말하면, 시스템의 기본 charset을 사용해서 byte[]을 디코딩해서 String을 만든다는겁니다.

그런데, 이렇게 코딩을 하게되면 기본 charset이 다른 플랫폼 사이에서의 호환성을 잃어버리게 됩니다.

예를들면,
  • .NET에서 파일을 System.Default로 인코딩해서 저장합니다.
  • 윈도우에서 Java로 개발하면서 위와 같이 코딩을 합니다.
  • 윈도우에서 테스트할 경우에는 문제가 발생하지 않습니다. (왜냐하면, charset이 같기 때문입니다.)
  • 이 프로그램을 UTF-8로 설정된 리눅스에서 돌리면, 디코딩을 제대로 하지 못하는 문제가 발생합니다.
.NET 프로그램 -----> DB, File, Network -----> Java 프로그램(MS-Windows, Linux등에서 동작)



이런 문제를 해결하기 위해 다음과 같이 저장시 사용한 charset을 명시적으로 사용해야 합니다.

코드 보기



크리에이티브 커먼즈 라이센스
Creative Commons License

Trackback Address :: http://dont.pe.kr/tt/trackback/18

Name

Password

Homepage

Secret