diff --git a/src/lit.rs b/src/lit.rs
index c4860bc..34cd341 100644
--- a/src/lit.rs
+++ b/src/lit.rs
@@ -390,7 +390,11 @@
                 Lit::ByteStr(ref v, StrStyle::Cooked) => {
                     let mut escaped = "b\"".to_string();
                     for &ch in v.iter() {
-                        escaped.extend(ascii::escape_default(ch).map(|c| c as char));
+                        match ch {
+                            0 => escaped.push_str(r"\0"),
+                            b'\'' => escaped.push('\''),
+                            _ => escaped.extend(ascii::escape_default(ch).map(|c| c as char)),
+                        }
                     }
                     escaped.push('"');
                     tokens.append(&escaped);
@@ -400,7 +404,18 @@
                         delim = iter::repeat("#").take(n).collect::<String>(),
                         string = str::from_utf8(vec).unwrap()));
                 }
-                Lit::Byte(b) => tokens.append(&format!("b{:?}", b as char)),
+                Lit::Byte(b) => {
+                    match b {
+                        0 => tokens.append(r"b'\0'"),
+                        b'\"' => tokens.append("b'\"'"),
+                        _ => {
+                            let mut escaped = "b'".to_string();
+                            escaped.extend(ascii::escape_default(b).map(|c| c as char));
+                            escaped.push('\'');
+                            tokens.append(&escaped);
+                        }
+                    }
+                }
                 Lit::Char(ch) => ch.to_tokens(tokens),
                 Lit::Int(value, ty) => tokens.append(&format!("{}{}", value, ty)),
                 Lit::Float(ref value, ty) => tokens.append(&format!("{}{}", value, ty)),
diff --git a/tests/cases/lit.rs b/tests/cases/lit.rs
index 1f90e3f..b9e43ea 100644
--- a/tests/cases/lit.rs
+++ b/tests/cases/lit.rs
@@ -2,22 +2,36 @@
     // Str
     ""
     "0"
+    "\0"
     "\n"
+    "\""
+    "'"
     r"\n"
+    r"'"
 
     // ByteStr
     b""
     b"0"
+    b"\0"
     b"\n"
+    b"\""
+    b"'"
     br"\n"
+    br"'"
 
     // Byte
     b'0'
+    b'\0'
     b'\n'
+    b'"'
+    b'\''
 
     // Char
     '0'
+    '\0'
     '\n'
+    '"'
+    '\''
 
     // Int
     0
