Make _load_testfile() use its encoding argument when __loader__ is defined.
diff --git a/Lib/doctest.py b/Lib/doctest.py
index 395f8b6..0b9be45 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -209,7 +209,8 @@
         filename = _module_relative_path(package, filename)
         if hasattr(package, '__loader__'):
             if hasattr(package.__loader__, 'get_data'):
-                return package.__loader__.get_data(filename).decode('utf-8'), filename
+                return (package.__loader__.get_data(filename).decode(encoding),
+                        filename)
     return open(filename, encoding=encoding).read(), filename
 
 def _indent(s, indent=4):
diff --git a/Misc/NEWS b/Misc/NEWS
index ba37891..749b94c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -14,6 +14,14 @@
 - The `hotshot` profiler has been removed; use `cProfile` instead.
 
 
+Library
+-------
+
+- When loading an external file using testfile(), the passed-in encoding
+  argument was being ignored if __loader__ is defined and forcing the source to
+  be UTF-8.
+
+
 What's New in Python 3.0a1?
 ==========================