bpo-34403: Fix initfsencoding() for ASCII (GH-10233)

* Add _Py_GetForceASCII(): check if Python forces the usage of ASCII
  in Py_DecodeLocale() and Py_EncodeLocale().
* initfsencoding() now uses ASCII if _Py_GetForceASCII() is true.
diff --git a/Python/fileutils.c b/Python/fileutils.c
index e72ce54..1b7e669 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -180,6 +180,18 @@
     return 1;
 }
 
+
+int
+_Py_GetForceASCII(void)
+{
+    if (force_ascii == -1) {
+        force_ascii = check_force_ascii();
+    }
+    return force_ascii;
+}
+
+
+
 static int
 encode_ascii(const wchar_t *text, char **str,
              size_t *error_pos, const char **reason,
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index ba4b548..c01b21f 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1615,6 +1615,10 @@
         Py_FileSystemDefaultEncoding = "utf-8";
         Py_HasFileSystemDefaultEncoding = 1;
     }
+    else if (_Py_GetForceASCII()) {
+        Py_FileSystemDefaultEncoding = "ascii";
+        Py_HasFileSystemDefaultEncoding = 1;
+    }
     else if (Py_FileSystemDefaultEncoding == NULL) {
         Py_FileSystemDefaultEncoding = get_locale_encoding();
         if (Py_FileSystemDefaultEncoding == NULL) {