bpo-18378: Recognize "UTF-8" as a valid name in locale._parse_localename (GH-14736)

(cherry picked from commit b0caf329815120acf50287e29858093d328b0e3c)

Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com>
diff --git a/Lib/locale.py b/Lib/locale.py
index f3d3973..dd8a085 100644
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -492,6 +492,10 @@
         return tuple(code.split('.')[:2])
     elif code == 'C':
         return None, None
+    elif code == 'UTF-8':
+        # On macOS "LC_CTYPE=UTF-8" is a valid locale setting
+        # for getting UTF-8 handling for text.
+        return None, 'UTF-8'
     raise ValueError('unknown locale: %s' % localename)
 
 def _build_localename(localetuple):