最近工作上正好需要进行UTF编码检测,自己写了一个,分享给大家,希望可以帮得上有需要用的朋友
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; }
新闻热点
疑难解答