PyUnicode_DecodeFSDefaultAndSize() uses surrogateescape error handler

This function is only used to decode Python module filenames, but Python
doesn't support surrogates in modules filenames yet. So nobody noticed this
minor bug.
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 369306e..23b322f 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1600,19 +1600,19 @@
     if (Py_FileSystemDefaultEncoding) {
 #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T)
         if (strcmp(Py_FileSystemDefaultEncoding, "mbcs") == 0) {
-            return PyUnicode_DecodeMBCS(s, size, "replace");
+            return PyUnicode_DecodeMBCS(s, size, "surrogateescape");
         }
 #elif defined(__APPLE__)
         if (strcmp(Py_FileSystemDefaultEncoding, "utf-8") == 0) {
-            return PyUnicode_DecodeUTF8(s, size, "replace");
+            return PyUnicode_DecodeUTF8(s, size, "surrogateescape");
         }
 #endif
         return PyUnicode_Decode(s, size,
                                 Py_FileSystemDefaultEncoding,
-                                "replace");
+                                "surrogateescape");
     }
     else {
-        return PyUnicode_DecodeUTF8(s, size, "replace");
+        return PyUnicode_DecodeUTF8(s, size, "surrogateescape");
     }
 }