Difference between revisions of "utf8"

(utf8.char bug note)
Line 6: Line 6:
  
 
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]]}}
 +
  
 
== Examples ==
 
== Examples ==

Revision as of 20:11, 28 March 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 utf8.char 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