--- old/src/java.base/windows/native/libjava/java_props_md.c 2015-11-25 11:47:25.265048900 -0800 +++ new/src/java.base/windows/native/libjava/java_props_md.c 2015-11-25 11:47:24.905636400 -0800 @@ -145,6 +145,8 @@ cp = GetConsoleCP(); if (cp >= 874 && cp <= 950) sprintf(buf, "ms%d", cp); + else if (cp == 65001) + sprintf(buf, "UTF-8"); else sprintf(buf, "cp%d", cp); return buf; @@ -688,17 +690,27 @@ } hStdOutErr = GetStdHandle(STD_OUTPUT_HANDLE); - if (hStdOutErr != INVALID_HANDLE_VALUE && - GetFileType(hStdOutErr) == FILE_TYPE_CHAR) { - sprops.sun_stdout_encoding = getConsoleEncoding(); + if (hStdOutErr != INVALID_HANDLE_VALUE) { + switch(GetFileType(hStdOutErr)) { + case FILE_TYPE_DISK: + case FILE_TYPE_CHAR: + case FILE_TYPE_PIPE: + sprops.sun_stdout_encoding = getConsoleEncoding(); + break; + } } hStdOutErr = GetStdHandle(STD_ERROR_HANDLE); - if (hStdOutErr != INVALID_HANDLE_VALUE && - GetFileType(hStdOutErr) == FILE_TYPE_CHAR) { - if (sprops.sun_stdout_encoding != NULL) - sprops.sun_stderr_encoding = sprops.sun_stdout_encoding; - else - sprops.sun_stderr_encoding = getConsoleEncoding(); + if (hStdOutErr != INVALID_HANDLE_VALUE) { + switch (GetFileType(hStdOutErr)) { + case FILE_TYPE_DISK: + case FILE_TYPE_CHAR: + case FILE_TYPE_PIPE: + if (sprops.sun_stdout_encoding != NULL) + sprops.sun_stderr_encoding = sprops.sun_stdout_encoding; + else + sprops.sun_stderr_encoding = getConsoleEncoding(); + break; + } } } }