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 毕业导师的祝福语简短