BOM头识别文件类型。

在JAVA读取文件时需要处理文件的BOM头。 HTTP服务器端,读取客户端上传文件时,也需要解析BOM头。

  --注意使用windowsAPI读取文件时,BOM头会自动去掉。


1、从Ultra-edit-32中提取出来的 JPEG (jpg),

文件头:FFD8FF PNG (png),

文件头:89504E47 GIF (gif),

文件头:47494638 TIFF (tif),

文件头:49492A00 Windows Bitmap (bmp),

文件头:424D CAD (dwg),文件头:41433130Adobe Photoshop (psd),

文件头:38425053 Rich Text Format (rtf),

文件头:7B5C727466 XML (xml),

文件头:3C3F786D6C HTML (html),

文件头:68746D6C3E Email [thorough only] (eml),

文件头:44656C69766572792D646174653A Outlook Express (dbx),

文件头:CFAD12FEC5FD746F Outlook (pst),

文件头:2142444E MS Word/Excel (xls.or.doc),

文件头:D0CF11E0 MS Access (mdb),

文件头:5374616E64617264204A WordPerfect (wpd),

文件头:FF575043 Postscript (eps.or.ps),

文件头:252150532D41646F6265 Adobe Acrobat (pdf),

文件头:255044462D312E Quicken (qdf),

文件头:AC9EBD8F Windows Password (pwl),

文件头:E3828596 ZIP Archive (zip),

文件头:504B0304 RAR Archive (rar),

文件头:52617221 Wave (wav),

文件头:57415645 AVI (avi),

文件头:41564920 Real Audio (ram),

文件头:2E7261FD Real Media (rm),

文件头:2E524D46 MPEG (mpg),

文件头:000001BA MPEG (mpg),

文件头:000001B3 Quicktime (mov),

文件头:6D6F6F76 Windows Media (asf),

文件头:3026B2758E66CF11 MIDI (mid),

文件头:4D546864 


二、从winhex中取出的文件头列表 File Type ExtensionsHeader JPEG jpg;jpeg 0xFFD8FF PNG png 0x89504E470D0A1A0A GIF gif GIF8 TIFF tif;tiff 0x49492A00 TIFF tif;tiff 0x4D4D002A Bit map bmp BM AOL ART art 0x4A47040E000000 AOL ART art 0x4A47030E000000 PC Paintbrush pcx 0x0A050108 Graphics Metafile wmf 0xD7CDC69A Graphics Metafile wmf 0x01000900 Graphics Metafile wmf 0x02000900 Enhanced Metafile emf 0x0100000058000000 Corel Draw cdr CDR CAD dwg 0x41433130 Adobe Photoshop psd 8BPS Rich Text Format rtf rtf XML xml HTML html;htm;php;php3;php4;phtml;shtml type Email eml Delivery-date: Outlook Express dbx 0xCFAD12FE Outlookpst!BDN MS Office/OLE2 doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db 0xD0CF11E0A1B11AE1 MS Access mdb;mda;mde;mdt Standard J WordPerfect wpd 0xFF575043 OpenOffice Writer sxw writer OpenOffice Calc sxc calc OpenOffice Math sxm math OpenOffice Impress sxi impress OpenOffice Draw sxd draw Adobe FrameMaker fm <MAKERFILE PostScript eps.or.ps;ps;eps %!PS-Adobe Adobe Acrobat pdf %PDF-1. Quicken qdf 0xAC9EBD8F QuickBooks Backup qbb 0x458600000600 Sage sly.or.srt.or.slt;sly;srt;slt 0x53520100 Sage Backup 1 SAGEBACKUP Lotus WordPro v9 lwp 0x576F726450726F Lotus 123 v9 123 0x00001A00051004 Lotus 123 v5 wk4 0x00001A0002100400 Lotus 123 v3 wk3 0x00001A0000100400 Lotus 123 v1 wk1 0x2000604060 Windows Password pwl 0xE3828596 ZIP Archive zip;jar 0x504B0304 ZIP Archive (outdated) zip 0x504B3030 RAR Archive rar Rar! GZ Archive gz;tgz 0x1F8B08 BZIP Archive bz2 BZh ARJ Archive arj 0x60EA 7-ZIP Archive 7z 7z集Wave wav WAVE AVI avi AVI Real Audio ram;ra .ra?0 Real Media rm .RMF MPEG mpg;mpeg 0x000001BA MPEG mpg;mpeg 0x000001B3 Quicktime mov moov Windows Media asf 0x3026B2758E66CF11 MIDI mid MThd Win32 Executable exe;dll;drv;vxd;sys;ocx;vbx MZ Win16 Executable exe;dll;drv;vxd;sys;ocx;vbx MZ ELF Executable elf;; 0x7F454C4601010100

文本文件DOM头与编码方式。

if (buff.Length == 0) { return ""; }
                if (buff[0] == 239 && buff[1] == 187 && buff[2] == 191)
                {
                    return Encoding.UTF8.GetString(buff, 3, buff.Length - 3);
                }
                else if (buff[0] == 255 && buff[1] == 254)
                {
                    return Encoding.Unicode.GetString(buff, 2, buff.Length - 2);
                }
                else if (buff[0] == 254 && buff[1] == 255)
                {
                    if (buff.Length > 3 && buff[2] == 0 && buff[3] == 0)
                    {
                        return Encoding.UTF32.GetString(buff, 4, buff.Length - 4);
                    }
                    return Encoding.BigEndianUnicode.GetString(buff, 2, buff.Length - 2);
                }
                return encoding.GetString(buff);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值