반응형
백만년 만에 글. 너무 글을 안써서 오랜만에 생각나서 써 봄. ㅋ
Java에서 제공하는 기본적인 Reader계열에서는 UTF-8의 BOM을 제대로 처리하지 못합니다. 그렇기 때문에 BOM이 있는 UTF-8 stream을 Reader로 넣으면, String의 제일 앞글자에 0xfeff 가 들어 오는 문제가 생깁니다.
"UTF-8의 BOM을 제대로 처리 못하는 Java의 문제가 아니냐?" 고 물을 수 있겠지만은, Unicode 표준에는 UTF-8에 대해서는 BOM을 적지 않도록 권고(neither required nor recommended)하고 있습니다. 그런데 MS Windows 계열에서 만들어진 일부 문서에서는 BOM을 포함하는 경우가 종종있습니다.
이를 해결할 수 있는 방법은,
1. BOM에 대한 정보를 inputStream에서 미리 읽어 버리고, BOM 이후부터 Reader에서 읽도록 처리하는 방법
2. 얻어진 String에서 tmp = tmp.replace("\uFEFF", ""); 와 같은 방법으로 0xfeff 무시하기
3. 각종 외부 라이브러리를 이용해서 처리 하기
입니다.
반응형
'공부' 카테고리의 다른 글
Windows 10 Hyper-V, Docker 사용사 외부에서 접근이 안될때, 방화벽 설정. (0) | 2017.04.27 |
---|---|
Windows 10 텐서플로우 환경에서 jupyter notebook 실행하기 (0) | 2017.02.21 |
Windows 10 64bit 에서 텐서플로우(Tensorflow) 1.0.0 설치하기 (0) | 2017.02.12 |