utf8編碼檢測辦法分享。本站提示廣大學習愛好者:(utf8編碼檢測辦法分享)文章只能為提供參考,不一定能成為您想要的結果。以下是utf8編碼檢測辦法分享正文
public bool isUtf8(byte[] rawText)
{
bool result = true;
if (rawText == null)
{
return !result;
}
int pos = 0;
while (pos < rawText.Length && result)
{
if ((rawText[pos] & 0x7F) == rawText[pos])
{
pos++;
}
else
{
int bitLen = 7;
while (((rawText[pos] >> bitLen) & 0x01) == 1 && bitLen > 0)
{
bitLen--;
}
int byteCount = 7 - bitLen;
if (byteCount > 1 && byteCount < 7)
{
for (int i = 1; i < byteCount; ++i)
{
if (pos + i >= rawText.Length || (rawText[pos + i] & 0xBF) != rawText[pos + i])
{
result = false;
break;
}
}
pos += byteCount;
}
else
{
result = false;
}
}
}
return result;
}