새소식

반응형
Java/Spring

바이트 순서 표시(BOM, Byte Order Mark)

  • -
반응형

BOM(Byte Order Mark)

BOM 이란 문서의 맨 앞부분에 눈에 보이지 않는 특정 바이트(Byte)를 넣은 다음 해당 문서의 인코딩 방식이 어떠한 인코딩 방식으로 사용되었는지 알아내는 방법을 나타낸다.

BOM은 텍스트 에디터 화면에서는 보이지 않고, 헥사 에디터(Hex Editor)로 열었을때만 보인다.

 

BOM의 종류

인코딩 방식 BOM(Byte Order Mark)
UTF-8 EF BB BF
UTF-16 Big Endian FE FF
UTF-16 Little Endian FF FE
UTF-32 Big Endian 00 00 FE FF
UTF-32 Little Endian FF FE 00 00

 

Java 로 예를 들면

 

간단한 csv 파일을 만들때 text가 깨지는 경우가 있다. 이때 사용한다.

 

public String resultAction(HttpServletRequest request, Model model) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String customer = request.getParameter("customer");
    
    BufferedWriter fw = new BufferedWriter(new FileWriter("file_test"+".csv",true));
    //미리 앞부분에 인코딩 방식을 추가한다.
    fw.write("\uFEFF");
    fw.write(customer+","+request.getParameter("dept")+","+request.getParameter("email")+","+sdf.format(new
    Date()));

    fw.newLine();
    fw.flush();
    fw.close();
}
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.