阅读背景:

UTF8/ANSI/UNICODE文件读取

来源:互联网 
 
 
//判断文件类型
DWORD CHXScriptReal::CheckFileType( HANDLE hFile )
{
    HXScriptFileCheck sfc;
    DWORD dwcbSize;


    if( ReadFile( hFile, &sfc, sizeof( sfc ), &dwcbSize, NULL ) && ( dwcbSize > sizeof( sfc )))
    {
        if( IsBinFile( &sfc ))
            return HXSF_CODETYPE_BIN;
    }


    if( dwcbSize >= 3 && sfc.byBom[ 0 ] == 0xEF && sfc.byBom[ 1 ] == 0xBB && sfc.byBom[ 2 ] == 0xBF )
    {
        SetFilePointer( hFile, 3, NULL, FILE_BEGIN );
        return HXSF_CODETYPE_UTF8;
    }
    else if( dwcbSize >= 2 && sfc.byBom[ 0 ] == 0xFF && sfc.byBom[ 1 ] == 0xFE )
    {
        SetFilePointer( hFile, 2, NULL, FILE_BEGIN );
        return HXSF_CODETYPE_UNICODE;
    }
    else if( dwcbSize >= 2 && sfc.byBom[ 0 ] == 0xFE && sfc.byBom[ 1 ] == 0xFF )
    {
        SetFilePointer( hFile, 2, NULL, FILE_BEGIN );
        return HXSF_CODETYPE_UNICODE_BIGENDIAN;
    }
    else
    {
        SetFilePointer( hFile, 0, NULL, FILE_BEGIN );
        return HXSF_CODETYPE_ANSI;
    }
}DWORD CHXScriptReal::CheckFileTyp



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: