- 문제상황
- Linux에서 CSV파일 생성(인코딩: UTF-8)
- Window로 복사해서 open할경우 인코딩 깨짐
- 상황
- Linux, MAC : CSV작성시 --> ( 한글 인코딩 : UTF-8 )
- Window: EXCEL에서 CSV파일 생성 --> CP949
- Window에서 EUC-KR파일을 그냥 저장하면 --> ASCII (한글날라감)
- 해결방법
- (파일을 윈도우에서 수정하지 않고, 열어서 보기만 할경우)
(1)sublime text > Set file encoding to > UTF-8 선택
(2) 직접 linucx서버에서 파일 생성시 UTF-8 BOM생성해서 입력 해줌 (Hexa: EF BB BF)
public static final byte[] BOM = {(byte) 0xEF, (byte) 0xBB, (byte) 0xBF};
- (파일을 윈도우에서 수정할 경우) --> 내용을 수정시 Window Excel에서 그냥 저장 누르면 ASCII로 인코딩되어 한글 깨짐, 다른이름으로 저장을 눌러 원래파일이름에 덮어쓰기 저장하면 EUC-KR로 저장됨
- (파일을 서버에서 읽어야 할 경우) --> JAVA에서 fileInputStream 맨앞3Byte (BOM) 을 확인하여 fileread시에 파일의 인코딩에 맞게 read(4byte씩: utf-8은 가변길이로 1byte~4byte이므로 max길이인 4byte씩읽어야함)
- 참고: 한글인코딩에 관하여
http://d2.naver.com/helloworld/19187
- 참고: 한글인코딩 CP949 <> EUC-KR <>UTF-8에 관하여
http://studyforus.tistory.com/167
댓글 없음:
댓글 쓰기