C#簡單判斷字符編碼的方法
本文實例講述了C#簡單判斷字符編碼的方法。分享給大家供大家參考,具體如下:
public static string GetText(byte[] buff)
{
string strReslut = string.Empty;
if (buff.Length > 3)
{
if (buff[0] == 239 && buff[1] == 187 && buff[2] == 191)
{// utf-8
strReslut = Encoding.UTF8.GetString(buff);
}
else if (buff[0] == 254 && buff[1] == 255)
{// big endian unicode
strReslut = Encoding.BigEndianUnicode.GetString(buff);
}
else if (buff[0] == 255 && buff[1] == 254)
{// unicode
strReslut = Encoding.Unicode.GetString(buff);
}
else if (isUtf8(buff))
{// utf-8
strReslut = Encoding.UTF8.GetString(buff);
}
else
{// ansi
strReslut = Encoding.Default.GetString(buff);
}
}
return strReslut;
}
// 110XXXXX, 10XXXXXX
// 1110XXXX, 10XXXXXX, 10XXXXXX
// 11110XXX, 10XXXXXX, 10XXXXXX, 10XXXXXX
private static bool isUtf8(byte[] buff)
{
for (int i = 0; i < buff.Length; i++)
{
if ((buff[i] & 0xE0) == 0xC0) // 110x xxxx 10xx xxxx
{
if ((buff[i + 1] & 0x80) != 0x80)
{
return false;
}
}
else if ((buff[i] & 0xF0) == 0xE0) // 1110 xxxx 10xx xxxx 10xx xxxx
{
if ((buff[i + 1] & 0x80) != 0x80 || (buff[i + 2] & 0x80) != 0x80)
{
return false;
}
}
else if ((buff[i] & 0xF8) == 0xF0) // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx
{
if ((buff[i + 1] & 0x80) != 0x80 || (buff[i + 2] & 0x80) != 0x80 || (buff[i + 3] & 0x80) != 0x80)
{
return false;
}
}
}
return true;
}
// news.sohu.com
private static bool isGBK(byte[] buff)
{
return false;
}
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#編碼操作技巧總結(jié)》、《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計入門教程》及《C#程序設(shè)計之線程使用技巧總結(jié)》
希望本文所述對大家C#程序設(shè)計有所幫助。
相關(guān)文章
.Net(c#)漢字和Unicode編碼互相轉(zhuǎn)換實例
下面小編就為大家?guī)硪黄?Net(c#)漢字和Unicode編碼互相轉(zhuǎn)換實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
WinFrom中l(wèi)abel背景透明的實現(xiàn)方法
這篇文章主要介紹了WinFrom中l(wèi)abel背景透明的實現(xiàn)方法,方法簡單實用,是C#程序設(shè)計中非常實用的技巧,需要的朋友可以參考下2014-09-09
C#實現(xiàn)簡單學(xué)生成績管理系統(tǒng)
這篇文章主要為大家詳細介紹了C#實現(xiàn)簡單學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-08-08
C#歸并排序的實現(xiàn)方法(遞歸,非遞歸,自然歸并)
C#歸并排序的實現(xiàn)方法(遞歸,非遞歸,自然歸并),需要的朋友可以參考一下2013-04-04

