Issue #12451: pydoc.synopsis() now reads the encoding cookie if available, to
read the Python script from the right encoding.
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 2391013e..1619446 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -57,16 +57,17 @@
 #     the current directory is changed with os.chdir(), an incorrect
 #     path will be displayed.
 
-import os
-import sys
 import builtins
 import imp
-import io
 import inspect
+import io
+import os
 import pkgutil
 import platform
 import re
+import sys
 import time
+import tokenize
 import warnings
 from collections import deque
 from reprlib import Repr
@@ -227,7 +228,7 @@
     if lastupdate < mtime:
         info = inspect.getmoduleinfo(filename)
         try:
-            file = open(filename)
+            file = tokenize.open(filename)
         except IOError:
             # module can't be opened, so skip it
             return None