diff --git a/Misc/NEWS b/Misc/NEWS
index e96581b..dea4fd0 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -213,6 +213,8 @@
 Windows
 -------
 
+- Issue #28333: Enables Unicode for ps1/ps2 and input() prompts
+
 - Issue #28251: Improvements to help manuals on Windows.
 
 - Issue #28110: launcher.msi has different product codes between 32-bit and
diff --git a/Parser/myreadline.c b/Parser/myreadline.c
index a8f23b7..4f7a9fc 100644
--- a/Parser/myreadline.c
+++ b/Parser/myreadline.c
@@ -203,17 +203,37 @@
 
 #ifdef MS_WINDOWS
     if (!Py_LegacyWindowsStdioFlag && sys_stdin == stdin) {
-        HANDLE hStdIn;
+        HANDLE hStdIn, hStdErr;
 
         _Py_BEGIN_SUPPRESS_IPH
         hStdIn = (HANDLE)_get_osfhandle(fileno(sys_stdin));
+        hStdErr = (HANDLE)_get_osfhandle(fileno(stderr));
         _Py_END_SUPPRESS_IPH
 
         if (_get_console_type(hStdIn) == 'r') {
             fflush(sys_stdout);
-            if (prompt)
-                fprintf(stderr, "%s", prompt);
-            fflush(stderr);
+            if (prompt) {
+                if (_get_console_type(hStdErr) == 'w') {
+                    wchar_t *wbuf;
+                    int wlen;
+                    wlen = MultiByteToWideChar(CP_UTF8, 0, prompt, -1,
+                            NULL, 0);
+                    if (wlen++ &&
+                        (wbuf = PyMem_RawMalloc(wlen * sizeof(wchar_t)))) {
+                        wlen = MultiByteToWideChar(CP_UTF8, 0, prompt, -1,
+                                wbuf, wlen);
+                        if (wlen) {
+                            DWORD n;
+                            fflush(stderr);
+                            WriteConsoleW(hStdErr, wbuf, wlen, &n, NULL);
+                        }
+                        PyMem_RawFree(wbuf);
+                    }
+                } else {
+                    fprintf(stderr, "%s", prompt);
+                    fflush(stderr);
+                }
+            }
             clearerr(sys_stdin);
             return _PyOS_WindowsConsoleReadline(hStdIn);
         }
