Change readbuffer_encode() and charbuffer_encode() to
return bytes objects.
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 666f0df..89a3473 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -422,12 +422,12 @@
     def test_array(self):
         import array
         self.assertEqual(
-            codecs.readbuffer_encode(array.array("c", "spam")),
-            ("spam", 4)
+            codecs.readbuffer_encode(array.array("b", bytes("spam"))),
+            (b"spam", 4)
         )
 
     def test_empty(self):
-        self.assertEqual(codecs.readbuffer_encode(""), ("", 0))
+        self.assertEqual(codecs.readbuffer_encode(""), (b"", 0))
 
     def test_bad_args(self):
         self.assertRaises(TypeError, codecs.readbuffer_encode)
@@ -436,10 +436,10 @@
 class CharBufferTest(unittest.TestCase):
 
     def test_string(self):
-        self.assertEqual(codecs.charbuffer_encode("spam"), ("spam", 4))
+        self.assertEqual(codecs.charbuffer_encode("spam"), (b"spam", 4))
 
     def test_empty(self):
-        self.assertEqual(codecs.charbuffer_encode(""), ("", 0))
+        self.assertEqual(codecs.charbuffer_encode(""), (b"", 0))
 
     def test_bad_args(self):
         self.assertRaises(TypeError, codecs.charbuffer_encode)
diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c
index de5270d..1199671 100644
--- a/Modules/_codecsmodule.c
+++ b/Modules/_codecsmodule.c
@@ -533,8 +533,7 @@
 			  &data, &size, &errors))
 	return NULL;
 
-    return codec_tuple(PyString_FromStringAndSize(data, size),
-		       size);
+    return codec_tuple(PyBytes_FromStringAndSize(data, size), size);
 }
 
 static PyObject *
@@ -549,8 +548,7 @@
 			  &data, &size, &errors))
 	return NULL;
 
-    return codec_tuple(PyString_FromStringAndSize(data, size),
-		       size);
+    return codec_tuple(PyBytes_FromStringAndSize(data, size), size);
 }
 
 static PyObject *
@@ -569,14 +567,12 @@
     if (PyUnicode_Check(obj)) {
 	data = PyUnicode_AS_DATA(obj);
 	size = PyUnicode_GET_DATA_SIZE(obj);
-	return codec_tuple(PyString_FromStringAndSize(data, size),
-			   size);
+	return codec_tuple(PyBytes_FromStringAndSize(data, size), size);
     }
     else {
 	if (PyObject_AsReadBuffer(obj, (const void **)&data, &size))
 	    return NULL;
-	return codec_tuple(PyString_FromStringAndSize(data, size),
-			   size);
+	return codec_tuple(PyBytes_FromStringAndSize(data, size), size);
     }
 }