内容显示页
 
类别:.Net + C# | 浏览(2708) | 2008-4-4 17:20:39

 

public class EncodingType
//编码问题目前为止,基本上没人解决,就连windows的IE的自动识别有时还识别错编码呢。--yongfa365
//如果文件有BOM则判断,如果没有就用系统默认编码,缺点:没有BOM的非系统编码文件会显示乱码。
//调用方法: EncodingType.GetType(filename)
//来源:http://blog.csdn.net/listlofusage/archive/2007/02/10/1506900.aspx
{
    public static System.Text.Encoding GetType(string FILE_NAME)
    {
        FileStream fs = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read);
        System.Text.Encoding r = GetType(fs);
        fs.Close();
        return r;
    }
    public static System.Text.Encoding GetType(FileStream fs)
    {
        /*byte[] Unicode=new byte[]{0xFF,0xFE};
        byte[] UnicodeBIG=new byte[]{0xFE,0xFF};
        byte[] UTF8=new byte[]{0xEF,0xBB,0xBF};*/

        BinaryReader r = new BinaryReader(fs, System.Text.Encoding.Default);
        byte[] ss = r.ReadBytes(3);
        r.Close();
        //编码类型 Coding=编码类型.ASCII;
        if (ss[0] >= 0xEF)
        {
            if (ss[0] == 0xEF && ss[1] == 0xBB && ss[2] == 0xBF)
            {
                return System.Text.Encoding.UTF8;
            }
            else if (ss[0] == 0xFE && ss[1] == 0xFF)
            {
                return System.Text.Encoding.BigEndianUnicode;
            }
            else if (ss[0] == 0xFF && ss[1] == 0xFE)
            {
                return System.Text.Encoding.Unicode;
            }
            else
            {
                return System.Text.Encoding.Default;
            }
        }
        else
        {
            return System.Text.Encoding.Default;
        }
    }
}

 


引用本页地址:http://www.yongfa365.com/item/CsharpEncodingPanDuanWenJianBianMaDeLeiSuiRanYouHenDaQueXianDanMuQianZhiNengZheYangLiao.html
 
 
相关链接
 
网友评论:
1 匿名网友 - 2010-1-11 15:41:06
我也在研究头疼的编码问题,看了楼主的文章才知道有BOM这个东西
如果只是读文件的话,忽然发现有个方法比较简便:
StreamReader sr = new StreamReader("filepath", true);
这个constructor 会自动检查有没有ByteOrderMarks。就不用单独写个方法判定了
和楼主写的函数效果一样的,而且支持的编码都可以覆盖到,谢谢你的帮助
 
姓名: 记住我
网址:
邮箱:
内容:
验证码:  验证码图片 看不清? 换张图试试
 
     
 
 
文章分类
 
 
.Net + C#(73)
 
 
ASP+VBS(161)
 
 
 
Linux(10)
 
 
 
web 2.0(26)
 
 
 
 
 
心程(68)
 
生活(97)
 
 
     

Power by :柳永法(yongfa365)'Blog  | 京ICP备07011491号  QQ:64049027  E-mail:64049027@qq.com yongfa365'CodePlex yongfa365'CodeGoogle

申请友情链接 要求:跟本站主题相类似正规网站,双方交换为首页位置

转载请注明来源,以便后人及时得到最新、修正、加强版!!!