zwilias / elm-utf-tools / String.UTF32

Need to work in unicode codepoints? Tired of UTF-8's silliness? You came to the right place!

length : String -> Basics.Int

Calculates the number UTF-32 characters in a String.

import String.UTF32 as UTF32

String.length "💩"
--> 2

UTF32.length "💩"
--> 1

toBytes : String -> List Basics.Int

Converts a String to a list of unicode codepoints. The inverse of toString

import String.UTF32 as UTF32

UTF32.toBytes "hello"
--> [ 0x68, 0x65, 0x6C, 0x6C, 0x6F ]

UTF32.toBytes "💩"
--> [ 0x0001F4A9 ]

toString : List Basics.Int -> String

Build a String from a list of unicode codepoints.

import String.UTF32 as UTF32

UTF32.toString [ 0x68, 0x65, 0x6C, 0x6C, 0x6F ]
--> "hello"

UTF32.toString [ 0x0001F4A9 ]
--> "💩"

foldl : (Basics.Int -> a -> a) -> a -> String -> a

Fold over a string, left to right, accumulating unicode codepoints.