最近工作上正好需要進(jìn)行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; }新聞熱點
疑難解答