Close #3067: locale.setlocale() accepts a Unicode locale.
diff --git a/Lib/locale.py b/Lib/locale.py
index bb4aa37..f204b56 100644
--- a/Lib/locale.py
+++ b/Lib/locale.py
@@ -525,7 +525,7 @@
         category may be given as one of the LC_* values.
 
     """
-    if locale and type(locale) is not type(""):
+    if locale and not isinstance(locale, basestring):
         # convert to string
         locale = normalize(_build_localename(locale))
     return _setlocale(category, locale)