Subject: bug#22667: closed (Re: bug#22667: string->bytevector encoding error)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 07 Aug 2016 21:26:02 +0000

Your bug report

#22667: string->bytevector encoding error

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
22667: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22667
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#22667: string->bytevector encoding error
From: Andy Wingo <[email-masked]>
To: Josep Portella Florit <[email-masked]>
Cc: [email-masked]
Date: Sun, 07 Aug 2016 23:25:29 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

On Mon 20 Jun 2016 18:07, Andy Wingo <[email-masked]> writes:

> On Sun 14 Feb 2016 23:18, Josep Portella Florit <[email-masked]> writes:
>
>> (use-modules (ice-9 iconv))
>> ;; These expressions throw 'encoding-error':
>> (string->bytevector (make-string 129 #\A) "UTF-16")
>> (string->bytevector (make-string 65 #\A) "UTF-32")
>
> For what it's worth, this appears to be fixed in 2.1.3.  However we
> should fix 2.0 as well.

Fixed.  Thanks for the report, and thanks to Mark for diagnosing the
problem.

Andy.

Subject: string->bytevector encoding error
From: Josep Portella Florit <[email-masked]>
To: [email-masked]
Date: Sun, 14 Feb 2016 23:18:16 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

'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")