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