[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] Numbers egg interaction with other compiled code.
From: |
Tony Sidaway |
Subject: |
Re: [Chicken-hackers] Numbers egg interaction with other compiled code. |
Date: |
Sat, 24 Oct 2009 14:37:33 +0100 |
On 10/24/09, John Cowan <address@hidden> wrote:
> Alex Shinn scripsit:
>
>> On the other hand, in 95% of cases external libraries don't
>> need to treat a string as utf8 and it will work fine.
>
> Provided they don't mutate it or use string-ref directly, I agree.
> But if you try to truncate a string to five characters, and what you
> get is five bytes, Bad Things.
I was under the impression that Chicken was already unicode-aware. but
apparently it's only partial.
The Euro symbol "€" is utf-8 #x20ac
(string-length (string #\€))
===> 1
(string=? (string #\€) (string (integer->char #x20ac)))
===> #t
(char=? (integer->char #x20ac) #\€)
===> #t
but (on my system at least):
(number->string (char->integer (string-ref (string (integer->char
#x20ac )) 0)) 16)
===> "ac"
This is deeply puzzling. string-length knows that the string is a
single character. but string-ref will only let you look at the first
byte. And worse, it refuses to look at the second byte because as far
as it's concerned the string only contains 1 byte:
(string-ref (string (integer->char #x20ac )) 1)
===> Error: (string-ref) out of range
This sounds like something that is relatively easy to fix. There's no
reason that I can think of why Chicken shouldn't be fully UTF-aware,
if it is capable of recognising, encoding and decoding UTF-8
characters.
Is this a limitation due to Chicken's being a Scheme-to-C implementation?
- [Chicken-hackers] Numbers egg interaction with other compiled code., Tony Sidaway, 2009/10/21
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code., John Cowan, 2009/10/21
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code., Tony Sidaway, 2009/10/21
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code., John Cowan, 2009/10/21
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code., Tony Sidaway, 2009/10/23
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code., Alex Shinn, 2009/10/23
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code., John Cowan, 2009/10/24
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code.,
Tony Sidaway <=
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code., John Cowan, 2009/10/24
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code., Tony Sidaway, 2009/10/24
- Re: [Chicken-hackers] Numbers egg interaction with other compiled code., Tony Sidaway, 2009/10/24
[Chicken-hackers] Re: Numbers egg interaction with other compiled code., Tony Sidaway, 2009/10/21