packaging: don't use locale encoding to compute MD5 checksums

Open the file in binary mode or use UTF-8 encoding.
diff --git a/Lib/packaging/command/install_distinfo.py b/Lib/packaging/command/install_distinfo.py
index 41fe734..a25a15a 100644
--- a/Lib/packaging/command/install_distinfo.py
+++ b/Lib/packaging/command/install_distinfo.py
@@ -133,9 +133,9 @@
                             writer.writerow((fpath, '', ''))
                         else:
                             size = os.path.getsize(fpath)
-                            with open(fpath, 'r') as fp:
+                            with open(fpath, 'rb') as fp:
                                 hash = hashlib.md5()
-                                hash.update(fp.read().encode())
+                                hash.update(fp.read())
                             md5sum = hash.hexdigest()
                             writer.writerow((fpath, md5sum, size))
 
diff --git a/Lib/packaging/create.py b/Lib/packaging/create.py
index 837d0b6..0676cf1 100644
--- a/Lib/packaging/create.py
+++ b/Lib/packaging/create.py
@@ -400,10 +400,10 @@
                                  self.data['description']).lower().encode())
                 ref = ref.digest()
                 for readme in glob.glob('README*'):
-                    with open(readme) as fp:
+                    with open(readme, encoding='utf-8') as fp:
                         contents = fp.read()
-                    val = md5(re.sub('\s', '',
-                                     contents.lower()).encode()).digest()
+                    contents = re.sub('\s', '', contents.lower()).encode()
+                    val = md5(contents).digest()
                     if val == ref:
                         del data['description']
                         data['description-file'] = readme
diff --git a/Lib/packaging/tests/test_command_install_distinfo.py b/Lib/packaging/tests/test_command_install_distinfo.py
index 3d33691..6d40f66 100644
--- a/Lib/packaging/tests/test_command_install_distinfo.py
+++ b/Lib/packaging/tests/test_command_install_distinfo.py
@@ -168,8 +168,8 @@
             else:
                 size = os.path.getsize(f)
                 md5 = hashlib.md5()
-                with open(f) as fp:
-                    md5.update(fp.read().encode())
+                with open(f, 'rb') as fp:
+                    md5.update(fp.read())
                 hash = md5.hexdigest()
                 expected.append([f, hash, str(size)])