파일에 UTF-8 텍스트의 BOM이 있는지 확인하는 방법


18

utf-8 텍스트 파일에 명령 줄의 BOM이 있는지 어떻게 확인할 수 있습니까?

file명령이 표시 UTF-8 Unicode text됩니다.

그러나 파일에 BOM이 없음을 의미합니다.

을 사용하고 Ubuntu 12.04있습니다.


UTF-8에는 BOM이 없습니다. 이는 UTF-16의 기능입니다. UTF-8 파일은 U + FEFF 문자로 시작할 수 있지만이 경우 너비가 0 인 공간입니다.
Gilles 'SO- 악의를 멈춰라

답변:


30

fileBOM이 있는지 알려줍니다. 다음을 테스트 할 수 있습니다.

$ /usr/bin/printf "\ufeff...\n" | file -
/dev/stdin: UTF-8 Unicode (with BOM) text

참고 : file변경 로그 에 따르면 이 기능은 2007 년에 이미 존재했습니다. 따라서 현재 시스템에서 작동합니다.


1
대답 해줘서 고마워요. 내 file버전은 file-5.09이고 결과는 /dev/stdin: ASCII text입니다. 버전에 따라 다릅니 file까?
ironsand

@ Tetsu 나는 file5.04 (Debian squeeze)로 테스트했는데 괜찮습니다. 변경 기록에 따르면 2007 년에도 테스트되지 않았습니다. 그러나 당신은 내 대답에 주어진 시험을 할 수 있습니다.
vinc17

방금에서 설치 language-pack-ja하면 apt예제가 완벽하게 작동합니다. 당신의 도움을 주셔서 감사합니다!
ironsand

4

당신이 stat fileName그것을 실행 하면 정확히 세 문자를 제공해야합니다. 편집기에서 파일을 열었을 때 아무것도 볼 수 없었습니다. 따라서 파일 크기가 3이라는 것을 알면 BOM이 있다는 것이 명확 해졌습니다.

또한, 여기 의 게시물 은 내 경우에 유익했습니다.

hexdump -n 3 -C 2.txt
00000000 ef bb bf
ef bb bf // YES
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.