diff --git a/base/applications/notepad/text.c b/base/applications/notepad/text.c index d22cf4817ee..0afdde89b6c 100644 --- a/base/applications/notepad/text.c +++ b/base/applications/notepad/text.c @@ -48,6 +48,19 @@ static BOOL Append(LPWSTR *ppszText, DWORD *pdwTextLen, LPCWSTR pszAppendText, D return TRUE; } +BOOL IsTextNonZeroASCII(const void *pText, DWORD dwSize) +{ + const signed char *pBytes = pText; + while (dwSize-- > 0) + { + if (*pBytes <= 0) + return FALSE; + + ++pBytes; + } + return TRUE; +} + ENCODING AnalyzeEncoding(const char *pBytes, DWORD dwSize) { INT flags = IS_TEXT_UNICODE_STATISTICS; @@ -55,6 +68,11 @@ ENCODING AnalyzeEncoding(const char *pBytes, DWORD dwSize) if (dwSize <= 1) return ENCODING_ANSI; + if (IsTextNonZeroASCII(pBytes, dwSize)) + { + return ENCODING_ANSI; + } + if (IsTextUnicode(pBytes, dwSize, &flags)) { return ENCODING_UTF16LE;