utf8
This library provides basic support for UTF-8 encoding. This library does not provide any support for Unicode other than the handling of the encoding. Any operation that needs the meaning of a character, such as character classification, is outside its scope.
Unless stated otherwise, all functions that expect a byte position as a parameter assume that the given position is either the start of a byte sequence or one plus the length of the subject string. As in the string library, negative indices count from the end of the string.
You can find a large catalog of usable UTF-8 characters here.
Summary
Functions
Converts zero or more codepoints to UTF-8 byte sequences.
Returns an iterator function that iterates over all codepoints in a given string.
Returns the codepoints (as integers) from all codepoints in a given string.
Returns the number of UTF-8 codepoints in a given string.
Returns the position (in bytes) where the encoding of the n‑th codepoint of s (counting from byte position i) starts.
Returns an iterator function that iterates over the grapheme clusters of a given string.
Converts the input string to Normal Form C.
Converts the input string to Normal Form D.
Properties
The pattern "[%z\x01-\x7F\xC2-\xF4][\x80-\xBF]*", which matches exactly zero or more UTF-8 byte sequences, assuming that the subject is a valid UTF-8 string.
Functions
codes
Returns an iterator function so that the construction:
for position, codepoint in utf8.codes(str) do-- bodyend
will iterate over all codepoints in string str. It raises an error if it meets any invalid byte sequence.
Parameters
The string to iterate over.
Returns the codepoints (as integers) from all codepoints in the provided string (str) that start between byte positions i and j (both included). The default for i is 1 and for j is i. It raises an error if it meets any invalid byte sequence.
Parameters
len
Returns the number of UTF-8 codepoints in the string str that start between positions i and j (both inclusive). The default for i is 1 and for j is -1. If it finds any invalid byte sequence, returns a nil value plus the position of the first invalid byte.
Parameters
Returns
offset
Returns the position (in bytes) where the encoding of the n‑th codepoint of s (counting from byte position i) starts. A negative n gets characters before position i. The default for i is 1 when n is non-negative and #s + 1 otherwise, so that utf8.offset(s, -n) gets the offset of the n‑th character from the end of the string. If the specified character is neither in the subject nor right after its end, the function returns nil.
Returns
Properties
charpattern
The pattern "[%z\x01-\x7F\xC2-\xF4][\x80-\xBF]*", which matches exactly zero or more UTF-8 byte sequence, assuming that the subject is a valid UTF-8 string.