utf8 (简体中文)
Available since LÖVE 0.9.2 |
This module is not supported in earlier versions. |
这个库提供了对于UTF-8字符串处理的基本支持。
所有提供的函数都在 require("utf8")
返回表中。这个库不提供除了处理UTF-8编码之外对Unicode的任何支持。任何需要字符含义的操作,比如字符分类,都不在其范围内。
详细的用法见参考手册.
![]() |
函数utf8.char在0.9.2中不能正确工作;然而从0.10.0版本开始这不再是问题 |
示例
打印用户输入的文本,并使用UTF-8模块擦除它。需要注意的是译者的输入法无法被唤起从而无法输入中文,但是擦除功能对于中文是也正常工作的。
local utf8 = require("utf8")
-- 加载字体,显而易见的是,默认字体中并不包含中文字形
-- 此处假设你的字体文件已经在这个位置了
local font = love.graphics.newFont("asserts/fonts/MSYH.TTF")
function love.load()
text = "随便打字吧! -- "
-- 允许键盘重复,这样你就可以一直按住退格一直删除字符
love.keyboard.setKeyRepeat(true)
end
function love.textinput(t)
text = text .. t
end
function love.keypressed(key)
if key == "backspace" then
-- 获得字符串里最后一个UTF-8字符的字节偏移量
local byteoffset = utf8.offset(text, -1)
if byteoffset then
-- 从字符串中移除最后一个 UTF-8 字符
-- string.sub 对字节进行操作,而非UTF-8字符,所以不能使用 string.sub(text, 1, -2).
text = string.sub(text, 1, byteoffset - 1)
end
end
end
function love.draw()
love.graphics.printf(text, font, 0, 0, love.graphics.getWidth())
end
参见
其它语言
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info