on 492ae2f help sign in
58 lines 1.1 kB history raw
1### `++turf`
3UTF8 to UTF32 cord
5Convert utf8 (`++cord`) to utf32 codepoints.
7Accepts
8-------
10`a` is a `@t`.
12Produces
13--------
15A `@c`, UTF-32 codepoint.
17Source
18------
20 ++ turf :: utf8 to utf32
21 |= a/@t
22 ^- @c
23 %+ rap 5
24 |- ^- (list @c)
25 =+ b=(teff a)
26 ?: =(0 b) ~
27 =+ ^= c
28 %+ can 0
29 %+ turn
30 ^- (list {p/@ q/@})
31 ?+ b !!
32 $1 [[0 7] ~]
33 $2 [[8 6] [0 5] ~]
34 $3 [[16 6] [8 6] [0 4] ~]
35 $4 [[24 6] [16 6] [8 6] [0 3] ~]
36 ==
37 |=({p/@ q/@} [q (cut 0 [p q] a)])
38 ?. =((tuft c) (end 3 b a)) ~|(%bad-utf8 !!)
39 [c $(a (rsh 3 b a))]
40 ::
42Examples
43--------
45 /~zod/try=> (turf 'my ßam')
46 ~-my.~df.am
47 /~zod/try=> 'я тут'
48 'я тут'
49 /~zod/try=> (turf 'я тут')
50 ~-~44f..~442.~443.~442.
51 /~zod/try=> `@ux`'я тут'
52 0x82.d183.d182.d120.8fd1
53 /~zod/try=> `@ux`(turf 'я тут')
54 0x442.0000.0443.0000.0442.0000.0020.0000.044f
58***