Difference between revisions of "utf8"

(utf8.char bug note)
m (Text tweak)
Line 7: Line 7:
 
For detailed usage, see the [http://www.lua.org/manual/5.3/manual.html#6.5 reference manual].
 
For detailed usage, see the [http://www.lua.org/manual/5.3/manual.html#6.5 reference manual].
  
{{notice|utf8.char does not work correctly in [[0.9.2]]}}
+
{{notice|The utf8.char function does not work correctly in [[0.9.2]]}}
  
  

Revision as of 04:13, 25 August 2015

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 The utf8.char function does not work correctly in 0.9.2  



Examples

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.
    love.keyboard.setKeyRepeat(true)
end

function love.textinput(t)
    text = text .. t
end

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)
        end
    end
end

function love.draw()
    love.graphics.printf(text, 0, 0, love.graphics.getWidth())
end

See Also


Other Languages