Available since: Gideros 2016.06
Class: utf8


Returns the position (in bytes) where the encoding of the n-th character of s (counting from position i) starts.

(number) = utf8.offset(s,n,i)

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.

As a special case, when n is 0 the function returns the start of the encoding of the character that contains the i-th byte of s.

This function assumes that s is a valid UTF-8 string.


s: (string)
n: (number)
i: (number) optional

Return values

Returns (number) position (in bytes)