blob: 913c8f331c43888533721ed896cd59dcde20fdb2 [file] [log] [blame]
#!/usr/bin/env python
import sys
def detectBOM(inFileName):
file = open(inFileName, 'r')
file.seek(0)
head = map(ord, file.read(4))
if head == [0x00, 0x00, 0xFE, 0xFF]:
return "utf_32_be"
elif head == [0xFF, 0xFE, 0x00, 0x00]:
return "utf_32_le"
elif head[:2] == [0xFE, 0xFF]:
return "utf_16_be"
elif head[:2] == [0xFF, 0xFE]:
return "utf_16_le"
elif head[:3] == [0xEF, 0xBB, 0xBF]:
return "utf_8"
else:
return "unknown"
def main(argv = None):
if argv is None:
argv = sys.argv
BOM = detectBOM(argv[1])
if BOM != "utf_8":
return 0
else:
print 'Detected byte-order mark ({0}) in file "{1}".'.format(
BOM, argv[1])
return 1
if __name__ == '__main__':
sys.exit(main())