2016년 5월 9일 월요일

Linux (UTF-8) Window 엑셀에서 CSV파일 한글 깨짐 (인코딩)


  • 문제상황
    • 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

댓글 없음:

댓글 쓰기