diff --git a/base/applications/notepad/text.c b/base/applications/notepad/text.c index 0025ddf9dac..86b0fa78c37 100644 --- a/base/applications/notepad/text.c +++ b/base/applications/notepad/text.c @@ -39,7 +39,7 @@ BOOL IsTextNonZeroASCII(const void *pText, DWORD dwSize) ENCODING AnalyzeEncoding(const char *pBytes, DWORD dwSize) { - INT flags = IS_TEXT_UNICODE_STATISTICS | IS_TEXT_UNICODE_REVERSE_STATISTICS; + INT flags = IS_TEXT_UNICODE_STATISTICS; if (dwSize <= 1 || IsTextNonZeroASCII(pBytes, dwSize)) return ENCODING_ANSI; @@ -47,7 +47,9 @@ ENCODING AnalyzeEncoding(const char *pBytes, DWORD dwSize) if (IsTextUnicode(pBytes, dwSize, &flags)) return ENCODING_UTF16LE; - if ((flags & IS_TEXT_UNICODE_REVERSE_MASK) && !(flags & IS_TEXT_UNICODE_ILLEGAL_CHARS)) + flags = IS_TEXT_UNICODE_STATISTICS | IS_TEXT_UNICODE_REVERSE_STATISTICS; + IsTextUnicode(pBytes, dwSize, &flags); + if (((flags & IS_TEXT_UNICODE_REVERSE_MASK) == IS_TEXT_UNICODE_REVERSE_STATISTICS)) return ENCODING_UTF16BE; /* is it UTF-8? */