PyFile_FromFd() uses PyUnicode_DecodeFSDefault() instead of
PyUnicode_FromString() to support surrogates in the filename and use the right
encoding
diff --git a/Misc/NEWS b/Misc/NEWS
index b7e9318..37fadd3 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,10 @@
 Core and Builtins
 -----------------
 
+- PyFile_FromFd() uses PyUnicode_DecodeFSDefault() instead of
+  PyUnicode_FromString() to support surrogates in the filename and use the
+  right encoding
+
 - PyUnicode_DecodeFSDefaultAndSize() uses surrogateescape error handler
 
 - Issue #8419: Prevent the dict constructor from accepting non-string keyword
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index 85e87d7..bbed57b 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -41,7 +41,7 @@
 	if (stream == NULL)
 		return NULL;
 	if (name != NULL) {
-		nameobj = PyUnicode_FromString(name);
+		nameobj = PyUnicode_DecodeFSDefault(name);
 		if (nameobj == NULL)
 			PyErr_Clear();
 		else {