'string->bytevector' throws 'encoding-error' when the encoding is "UTF-16" and the length of the string is greater than 128. The same for the encoding "UTF-32" and a string of length greater than 64.
Tested on Guile 2.0.11 and 2.1.2 with the same result. How to reproduce: (use-modules (ice-9 iconv)) ;; These expressions evaluate as expected: (string->bytevector (make-string 128 #\A) "UTF-16") ;; => #vu8(254 255 0 65 0 65 ...) (string->bytevector (make-string 64 #\A) "UTF-32") ;; => #vu8(0 0 254 255 0 0 0 65 0 0 0 65 ...) ;; These expressions throw 'encoding-error': (string->bytevector (make-string 129 #\A) "UTF-16") (string->bytevector (make-string 65 #\A) "UTF-32")