Code: Select all
> (length (char 0xff))
2
> (utf8len (char 0xff))
1
> (regex (char 0xff) (char 0xff))
("ÿ" 0 2)
> (regex (char 0xff) (char 0xff) 2048)
("ÿ" 0 2)
Code: Select all
> (length (char 0xff))
2
> (utf8len (char 0xff))
1
> (regex (char 0xff) (char 0xff))
("ÿ" 0 2)
> (regex (char 0xff) (char 0xff) 2048)
("ÿ" 0 2)
Code: Select all
> (regex "Ω" "Ω" 2048)
("Ω" 0 1)
> (regex "Ω" "Ω")
("Ω" 0 2)
>
Code: Select all
(define (get-utf8-index utf8-str byte-index)
(letn ((str-lst (explode utf8-str))
(str-len (length str-lst))
(chop-lst (sequence (- str-len 1) 0))
(char-len-lst (map length str-lst)))
(find byte-index
(map (curry apply +)
(map (curry chop char-len-lst) chop-lst)))))