Issue #7142:  Fix uses of unicode in memoryview objects
diff --git a/Lib/test/test_memoryview.py b/Lib/test/test_memoryview.py
index 571481e..0caf5ec 100644
--- a/Lib/test/test_memoryview.py
+++ b/Lib/test/test_memoryview.py
@@ -54,6 +54,12 @@
             m = self._view(b)
             self.assertEqual(list(m), [m[i] for i in range(len(m))])
 
+    def test_repr(self):
+        for tp in self._types:
+            b = tp(self._source)
+            m = self._view(b)
+            self.assertIsInstance(m.__repr__(), str)
+
     def test_setitem_readonly(self):
         if not self.ro_type:
             return
@@ -156,6 +162,7 @@
     def check_attributes_with_type(self, tp):
         m = self._view(tp(self._source))
         self.assertEquals(m.format, self.format)
+        self.assertIsInstance(m.format, str)
         self.assertEquals(m.itemsize, self.itemsize)
         self.assertEquals(m.ndim, 1)
         self.assertEquals(m.shape, (6,))
diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c
index 9427522..21e0645 100644
--- a/Objects/memoryobject.c
+++ b/Objects/memoryobject.c
@@ -335,7 +335,7 @@
 static PyObject *
 memory_format_get(PyMemoryViewObject *self)
 {
-    return PyUnicode_FromString(self->view.format);
+    return PyString_FromString(self->view.format);
 }
 
 static PyObject *
@@ -503,7 +503,7 @@
 static PyObject *
 memory_repr(PyMemoryViewObject *self)
 {
-    return PyUnicode_FromFormat("<memory at %p>", self);
+    return PyString_FromFormat("<memory at %p>", self);
 }
 
 /* Sequence methods */