C#简单判断字符编码的方法
本文实例讲述了C#简单判断字符编码的方法。分享给大家供大家参考,具体如下:
publicstaticstringGetText(byte[]buff)
{
stringstrReslut=string.Empty;
if(buff.Length>3)
{
if(buff[0]==239&&buff[1]==187&&buff[2]==191)
{//utf-8
strReslut=Encoding.UTF8.GetString(buff);
}
elseif(buff[0]==254&&buff[1]==255)
{//bigendianunicode
strReslut=Encoding.BigEndianUnicode.GetString(buff);
}
elseif(buff[0]==255&&buff[1]==254)
{//unicode
strReslut=Encoding.Unicode.GetString(buff);
}
elseif(isUtf8(buff))
{//utf-8
strReslut=Encoding.UTF8.GetString(buff);
}
else
{//ansi
strReslut=Encoding.Default.GetString(buff);
}
}
returnstrReslut;
}
//110XXXXX,10XXXXXX
//1110XXXX,10XXXXXX,10XXXXXX
//11110XXX,10XXXXXX,10XXXXXX,10XXXXXX
privatestaticboolisUtf8(byte[]buff)
{
for(inti=0;i<buff.Length;i++)
{
if((buff[i]&0xE0)==0xC0)//110xxxxx10xxxxxx
{
if((buff[i+1]&0x80)!=0x80)
{
returnfalse;
}
}
elseif((buff[i]&0xF0)==0xE0)//1110xxxx10xxxxxx10xxxxxx
{
if((buff[i+1]&0x80)!=0x80||(buff[i+2]&0x80)!=0x80)
{
returnfalse;
}
}
elseif((buff[i]&0xF8)==0xF0)//11110xxx10xxxxxx10xxxxxx10xxxxxx
{
if((buff[i+1]&0x80)!=0x80||(buff[i+2]&0x80)!=0x80||(buff[i+3]&0x80)!=0x80)
{
returnfalse;
}
}
}
returntrue;
}
//news.sohu.com
privatestaticboolisGBK(byte[]buff)
{
returnfalse;
}
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#编码操作技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
希望本文所述对大家C#程序设计有所帮助。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短