static enum tEncoding TextEncoding(aTextP) unsigned char *aTextP; { int vLength; enum tEncoding vEncoding = kAscii7; for (; *aTextP; ++aTextP) { if ((*aTextP & 0xFE) == 0xFC) vLength = 5; else if ((*aTextP & 0xFC) == 0xF8) vLength = 4; else if ((*aTextP & 0xF8) == 0xF0) vLength = 3; else if ((*aTextP & 0xF0) == 0xE0) vLength = 2; else if ((*aTextP & 0xE0) == 0xC0) vLength = 1; else if ((*aTextP & 0x80) == 0x00) vLength = 0; else return kLatin1; if (vLength > 0) vEncoding = kUtf8; while (0 < vLength--) if ((*++aTextP & 0xC0) != 0x80) return kLatin1; } return vEncoding; }