Since PyPI only accepts UTF-8 encoded data now, make sure that the data is
properly encoded and include the encoding in the Content-Type header.
diff --git a/Lib/distutils/command/register.py b/Lib/distutils/command/register.py
index 6e9a8d4..dec9aa2 100644
--- a/Lib/distutils/command/register.py
+++ b/Lib/distutils/command/register.py
@@ -254,7 +254,7 @@
             if type(value) != type([]):
                 value = [value]
             for value in value:
-                value = str(value)
+                value = unicode(value).encode("utf-8")
                 body.write(sep_boundary)
                 body.write('\nContent-Disposition: form-data; name="%s"'%key)
                 body.write("\n\n")
@@ -267,7 +267,7 @@
 
         # build the Request
         headers = {
-            'Content-type': 'multipart/form-data; boundary=%s'%boundary,
+            'Content-type': 'multipart/form-data; boundary=%s; charset=utf-8'%boundary,
             'Content-length': str(len(body))
         }
         req = urllib2.Request(self.repository, body, headers)
diff --git a/Misc/NEWS b/Misc/NEWS
index 21bcb4b..fa0b85f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -102,6 +102,9 @@
 - distutils.commands.upload was added to support uploading distribution
   files to PyPI.
 
+- distutils.commands.register now encodes the data as UTF-8 before posting
+  them to PyPI.
+
 - decimal operator and comparison methods now return NotImplemented
   instead of raising a TypeError when interacting with other types.  This
   allows other classes to implement __radd__ style methods and have them