diff --git a/string.go b/string.go
index 7ba48bd..3c545f6 100644
--- a/string.go
+++ b/string.go
@@ -377,23 +377,23 @@
 				}
 
 				// quickly detect the actual number of bytes
-				prev := offset
-				for i, len := offset, offset+nread; i < len; chunkLen-- {
+				prev, i := offset, offset
+				for len := offset + nread; i < len; chunkLen-- {
 					ch := bytesBuf[i]
 					if ch < 0x80 {
-						offset++
 						i++
 					} else if (ch & 0xe0) == 0xc0 {
-						offset += 2
 						i += 2
 					} else if (ch & 0xf0) == 0xe0 {
-						offset += 3
 						i += 3
 					} else {
-						return s, perrors.Errorf("bad utf-8 encoding, offset=%d\n", offset)
+						return s, perrors.Errorf("bad utf-8 encoding, offset=%d\n", offset+(i-prev))
 					}
 				}
 
+				// update byte offset
+				offset = offset + i - prev
+
 				if remain := offset - prev - nread; remain > 0 {
 					if remain == 1 {
 						ch, err := d.readByte()
@@ -465,8 +465,6 @@
 				bytesBuf[offset] = ch
 				offset += 3
 			} else {
-				b := bytesBuf[:offset]
-				fmt.Println(*(*string)(unsafe.Pointer(&b)))
 				return s, perrors.Errorf("bad utf-8 encoding, offset=%d\n", offset)
 			}
 
