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#程序设计有所帮助。