Available since LÖVE 0.9.2
This module is not supported in earlier versions.

This library provides basic support for handling UTF-8 encoded strings.

It provides all its functions inside the table returned by require("utf8"). This library does not provide any support for Unicode other than handling UTF-8 encoding. Any operation that needs the meaning of a character, such as character classification, is outside its scope.

For detailed usage, see the reference manual.

O.png utf8.char does not work correctly in 0.9.2  


Print text the user writes, and erase it using the UTF-8 module.

local utf8 = require("utf8")
function love.load()
    text = "Type away! -- "
    -- enable key repeat so backspace can be held down to trigger love.keypressed multiple times.
function love.textinput(t)
    text = text .. t
function love.keypressed(key)
    if key == "backspace" then
        -- get the byte offset to the last UTF-8 character in the string.
        local byteoffset = utf8.offset(text, -1)
        if byteoffset then
            -- remove the last UTF-8 character.
            -- string.sub operates on bytes rather than UTF-8 characters, so we couldn't do string.sub(text, 1, -2).
            text = string.sub(text, 1, byteoffset - 1)
function love.draw()
    love.graphics.printf(text, 0, 0, love.graphics.getWidth())

See Also

Other Languages