{{newin (日本語)|[[0.9.2 (日本語)|0.9.2]]|092||type=モジュール}}

このライブラリは UTF-8 文字コード形式 (encoding) 用の文字列処理機能です。 

すべての関数は <code>require("utf8")</code> で返されたテーブルにあります。このライブラリで扱えるのは UTF-8 文字コード形式であり、それ以外の Unicode 規格の文字コード形式には対応していません。文字の分類など文字の意味を必要とする全ての処理は適用範囲外です。

使用方法の詳細は、 [http://milkpot.sakura.ne.jp/lua/lua53_manual_ja.html#6.5 リファレンスマニュアル]を参照してください。

{{notice|utf8.char は [[0.9.2 (日本語)|0.9.2]] では正常に動作しません。しかしながら、この問題は [[0.10.0 (日本語)|0.10.0]] 以降では存在しません。}}


== 用例 ==
ユーザが入力したテキストを表示した後に、 UTF-8 モジュールで消去します。
<source lang="lua">
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
            -- remove the last UTF-8 character.
            -- 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
</source>

== 関連 ==
* [[parent::love (日本語)]]
* [[love.textinput (日本語)]]

[[Category:Libraries (日本語)]]
{{#set:Description=このライブラリは UTF-8 文字コード形式 (encoding) 用の文字列処理機能です。}}
{{#set:LOVE Version=0.9.2}}
{{#set:Keyword=String}}
== そのほかの言語 ==
{{i18n (日本語)|utf8}}