文本文件是指包含普通ASCII或者汉字或者其他国家的文字(内码)(例如韩文、日文之类)最好是通过API来实现,如果是自己的代码则最好能有理论证明

解决方案 »

  1.   

    检查文件当中是否包含ASCII 0,
    如果是二进制文件%90以上都会包含它的,而文本文件则绝对不会。安全的做法是把所有的ASCII小于128的非文本的字符列出来,查找文件当中是否包含了这些字母,文本文件当中包含的字母最小的就是回车和换行符号0x0d和0x0a如果是Unicode格式的文本文件,无法用有无0来判断。另外很多文本文件都有制表符(ascii码9)
      

  2.   

    首先一点可以保证文件不是unicode文件但是如果文件只有0x1a和0x20两个字节,则不是文本文件根据 laiyiling(最熟悉的陌生人) 的方法似乎行不通
      

  3.   

    文本文件出现的ASCII码是一部分,二进制文件则什么都可能。具此来判断吧。
      

  4.   

    我不清楚是否有这样的api函数。但是我想,你可以根据下面的方法来做。首先,文本文件一般都是包含的可显示的文本,那么只用读文件前面一小段,根据ASC
    码你可以很容易的判断是否有非显示字符,那大多就是2进制文件。二进制文件是一个超集,文本文件是一个特列
      

  5.   

    但是文本文件不单是由ASCII组成的,例如汉字的内码(有GB和GBK两个区间)
    而且需要判断其他任意语言的内码,例如繁体,韩文,法文之类的