diff --git a/rdg.go b/rdg.go index 6e4594694b3cca717d4fbe1bd611a1221b881075..9ebad663be4d72ac5a8dbee16eb136d82ac89716 100644 --- a/rdg.go +++ b/rdg.go @@ -619,8 +619,6 @@ func DecodeUTF16(b []byte) (string, error) { return "", fmt.Errorf("must have even length byte slice") } - b, _ = dropCR(b) - u16s := make([]uint16, 1) ret := &bytes.Buffer{} b8buf := make([]byte, 4) @@ -633,7 +631,11 @@ func DecodeUTF16(b []byte) (string, error) { ret.Write(b8buf[:n]) } - return ret.String(), nil + bret := ret.Bytes() + if len(bret) > 0 && bret[len(bret)-1] == '\x00' { + bret = bret[:len(bret)-1] + } + return string(bret), nil } // UTF-16 endian byte order