Difference between revisions of "utf8 (日本語)"

m
m (Adding keyword.)
Line 51: Line 51:
 
{{#set:Since=092}}
 
{{#set:Since=092}}
 
{{#set:PrettySince=0.9.2}}
 
{{#set:PrettySince=0.9.2}}
 +
{{#set:Keyword=String}}
 
{{#set:Description=このライブラリは UTF-8 符号化文字列を扱うため基本的な支援をします。}}
 
{{#set:Description=このライブラリは UTF-8 符号化文字列を扱うため基本的な支援をします。}}
 
{{#set:LOVE Version=0.9.2}}
 
{{#set:LOVE Version=0.9.2}}
 
==  そのほかの言語  ==
 
==  そのほかの言語  ==
 
{{i18n|utf8}}
 
{{i18n|utf8}}

Revision as of 15:37, 9 February 2017

LÖVE 0.9.2 から使用可能
このモジュールは以前のバージョンでは非対応です。


このライブラリは UTF-8 符号化文字列を扱うため基本的な支援をします。

全ての関数は require("utf8") により返されたテーブルの内側にて提供しています。このライブラリで扱えるのは UTF-8 符号化でありそれ以外の Unicode には対応していません。文字の分類などの、文字の意味を必要とする全ての操作は、適用範囲外です。

使用方法の詳細は、 リファレンスマニュアルを参照してください。

O.png utf8.char は 0.9.2 では正常に動作しません。しかしながら、この問題は 0.10.0 以降では存在しません。  



用例

ユーザが記述したテキストの表示後に、 UTF-8 モジュールを使用して消去します。

local utf8 = require("utf8")

function love.load()
    text = "Type away! -- "

    -- love.keypressed が発生するまでバックスペースを複数回押し下げたままにできるようにするためにキーリピートを有効にします。
    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, 0, 0, love.graphics.getWidth())
end

関連



そのほかの言語