mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 06:41:13 +02:00
doc: Remove obsolete reference to the lack of Unicode support.
* doc/ref/api-data.texi (Bytevectors as Strings): Remove obsolete footnote on the lack of Unicode support. * test-suite/tests/bytevectors.test ("2.9 Operations on Strings")["string->utf8 [latin-1]", "utf8->string [latin-1]"]: Remove use of `with-latin1-locale'. ["string->utf32 [Greek]"]: New tests.
This commit is contained in:
parent
f11871d6c5
commit
d3b5628c6d
2 changed files with 20 additions and 20 deletions
|
@ -4406,12 +4406,7 @@ the host's native endianness.
|
||||||
@cindex Unicode string encoding
|
@cindex Unicode string encoding
|
||||||
|
|
||||||
Bytevector contents can also be interpreted as Unicode strings encoded
|
Bytevector contents can also be interpreted as Unicode strings encoded
|
||||||
in one of the most commonly available encoding formats@footnote{Guile
|
in one of the most commonly available encoding formats.
|
||||||
1.8 does @emph{not} support Unicode strings. Therefore, the procedures
|
|
||||||
described here assume that Guile strings are internally encoded
|
|
||||||
according to the current locale. For instance, if @code{$LC_CTYPE} is
|
|
||||||
@code{fr_FR.ISO-8859-1}, then @code{string->utf-8} @i{et al.} will
|
|
||||||
assume that Guile strings are Latin-1-encoded.}.
|
|
||||||
|
|
||||||
@lisp
|
@lisp
|
||||||
(utf8->string (u8-list->bytevector '(99 97 102 101)))
|
(utf8->string (u8-list->bytevector '(99 97 102 101)))
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;;;; bytevectors.test --- R6RS bytevectors. -*- mode: scheme; coding: iso-8859-1; -*-
|
;;;; bytevectors.test --- R6RS bytevectors. -*- mode: scheme; coding: utf-8; -*-
|
||||||
;;;;
|
;;;;
|
||||||
;;;; Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
;;;; Copyright (C) 2009, 2010 Free Software Foundation, Inc.
|
||||||
;;;; Ludovic Courtès
|
;;;; Ludovic Courtès
|
||||||
;;;;
|
;;;;
|
||||||
;;;; This library is free software; you can redistribute it and/or
|
;;;; This library is free software; you can redistribute it and/or
|
||||||
;;;; modify it under the terms of the GNU Lesser General Public
|
;;;; modify it under the terms of the GNU Lesser General Public
|
||||||
|
@ -394,12 +394,11 @@
|
||||||
(map integer->char (bytevector->u8-list utf8))))))
|
(map integer->char (bytevector->u8-list utf8))))))
|
||||||
|
|
||||||
(pass-if "string->utf8 [latin-1]"
|
(pass-if "string->utf8 [latin-1]"
|
||||||
(with-latin1-locale
|
(let* ((str "hé, ça va bien ?")
|
||||||
(let* ((str "hé, ça va bien ?")
|
(utf8 (string->utf8 str)))
|
||||||
(utf8 (string->utf8 str)))
|
(and (bytevector? utf8)
|
||||||
(and (bytevector? utf8)
|
(= (bytevector-length utf8)
|
||||||
(= (bytevector-length utf8)
|
(+ 2 (string-length str))))))
|
||||||
(+ 2 (string-length str)))))))
|
|
||||||
|
|
||||||
(pass-if "string->utf16"
|
(pass-if "string->utf16"
|
||||||
(let* ((str "hello, world")
|
(let* ((str "hello, world")
|
||||||
|
@ -435,6 +434,13 @@
|
||||||
(bytevector->uint-list utf32
|
(bytevector->uint-list utf32
|
||||||
(endianness big) 4))))))
|
(endianness big) 4))))))
|
||||||
|
|
||||||
|
(pass-if "string->utf32 [Greek]"
|
||||||
|
(let* ((str "Ἄνεμοι")
|
||||||
|
(utf32 (string->utf32 str)))
|
||||||
|
(and (bytevector? utf32)
|
||||||
|
(equal? (bytevector->uint-list utf32 (endianness big) 4)
|
||||||
|
'(#x1f0c #x3bd #x3b5 #x3bc #x3bf #x3b9)))))
|
||||||
|
|
||||||
(pass-if "string->utf32 [little]"
|
(pass-if "string->utf32 [little]"
|
||||||
(let* ((str "hello, world")
|
(let* ((str "hello, world")
|
||||||
(utf32 (string->utf32 str (endianness little))))
|
(utf32 (string->utf32 str (endianness little))))
|
||||||
|
@ -457,12 +463,11 @@
|
||||||
(map integer->char (bytevector->u8-list utf8))))))
|
(map integer->char (bytevector->u8-list utf8))))))
|
||||||
|
|
||||||
(pass-if "utf8->string [latin-1]"
|
(pass-if "utf8->string [latin-1]"
|
||||||
(with-latin1-locale
|
(let* ((utf8 (string->utf8 "hé, ça va bien ?"))
|
||||||
(let* ((utf8 (string->utf8 "hé, ça va bien ?"))
|
(str (utf8->string utf8)))
|
||||||
(str (utf8->string utf8)))
|
(and (string? str)
|
||||||
(and (string? str)
|
(= (string-length str)
|
||||||
(= (string-length str)
|
(- (bytevector-length utf8) 2)))))
|
||||||
(- (bytevector-length utf8) 2))))))
|
|
||||||
|
|
||||||
(pass-if "utf16->string"
|
(pass-if "utf16->string"
|
||||||
(let* ((utf16 (uint-list->bytevector (map char->integer
|
(let* ((utf16 (uint-list->bytevector (map char->integer
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue