Conform to strict str/bytes distinction.
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index bf67eab..98b774a 100644
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -214,7 +214,7 @@
     # encoding, the following digits-1 bytes are a big-endian
     # representation. This allows values up to (256**(digits-1))-1.
     if 0 <= n < 8 ** (digits - 1):
-        s = bytes("%0*o" % (digits - 1, n)) + NUL
+        s = bytes("%0*o" % (digits - 1, n), "ascii") + NUL
     else:
         if format != GNU_FORMAT or n >= 256 ** (digits - 1):
             raise ValueError("overflow in number field")
@@ -604,7 +604,7 @@
     def getcomptype(self):
         if self.buf.startswith(b"\037\213\010"):
             return "gz"
-        if self.buf.startswith("BZh91"):
+        if self.buf.startswith(b"BZh91"):
             return "bz2"
         return "tar"
 
@@ -1108,7 +1108,7 @@
 
         buf = struct.pack("%ds" % BLOCKSIZE, b"".join(parts))
         chksum = calc_chksums(buf[-BLOCKSIZE:])[0]
-        buf = buf[:-364] + bytes("%06o\0" % chksum) + buf[-357:]
+        buf = buf[:-364] + bytes("%06o\0" % chksum, "ascii") + buf[-357:]
         return buf
 
     @staticmethod
@@ -1155,7 +1155,7 @@
                 if n == p:
                     break
                 p = n
-            records += bytes(str(p)) + b" " + keyword + b"=" + value + b"\n"
+            records += bytes(str(p), "ascii") + b" " + keyword + b"=" + value + b"\n"
 
         # We use a hardcoded "././@PaxHeader" name like star does
         # instead of the one that POSIX recommends.
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index 913ab60..8a59879 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -481,7 +481,7 @@
         tar = tarfile.open(tmpname, self.mode)
         path = os.path.join(TEMPDIR, "file")
         fobj = open(path, "wb")
-        fobj.write("aaa")
+        fobj.write(b"aaa")
         fobj.close()
         tar.add(path)
         tar.close()
@@ -499,7 +499,7 @@
         self.assertEqual(tarinfo.size, 0)
 
         fobj = open(path, "wb")
-        fobj.write("aaa")
+        fobj.write(b"aaa")
         fobj.close()
         tarinfo = tar.gettarinfo(path)
         self.assertEqual(tarinfo.size, 3)
@@ -603,7 +603,7 @@
             data = fobj.read()
             fobj.close()
 
-        self.assert_(data.count("\0") == tarfile.RECORDSIZE,
+        self.assert_(data.count(b"\0") == tarfile.RECORDSIZE,
                          "incorrect zero padding")
 
 
@@ -693,7 +693,7 @@
         self.bar = os.path.join(TEMPDIR, "bar")
 
         fobj = open(self.foo, "wb")
-        fobj.write("foo")
+        fobj.write(b"foo")
         fobj.close()
 
         os.link(self.foo, self.bar)