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

m
m
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{newin (日本語)|[[0.9.2]]|092|type=モジュール}}
 
{{newin (日本語)|[[0.9.2]]|092|type=モジュール}}
  
このライブラリは UTF-8 符号化文字列を扱うため基本的な支援をします。
+
{{notice|utf8.char は [[0.9.2 (日本語)|0.9.2]] では正常に動作しません。しかしながら、この問題は [[0.10.0 (日本語)|0.10.0]] 以降では存在しません。}}
  
全ての関数は <code>require("utf8")</code> により返されたテーブルの内側にて提供しています。このライブラリで扱えるのは UTF-8 符号化でありそれ以外の Unicode には対応していません。文字の分類などの、文字の意味を必要とする全ての操作は、適用範囲外です。
+
このライブラリは UTF-8 文字コード形式 (encoding) による文字列を扱うための基本機能があります。
 +
<!-- 原文は UTF-8 encoded strings (UTF-8 によりエンコードされた) ですが、翻訳として不適切ですので、今の訳出にしてあります。もちろん、エンコードがなにを指しているか注意深く察する必要があります。-->
  
使用方法の詳細は、 [http://www.lua.org/manual/5.3/manual.html#6.5 リファレンスマニュアル]を参照してください。
+
このライブラリの関数は <code>require("utf8")</code> により返されたテーブルとして実装しています。このライブラリで扱えるのは UTF-8 文字コード形式であり、それ以外の Unicode 規格による文字コード形式には対応していません。文字の分類など文字の意味を求める操作はすべて適用範囲外です。
  
{{notice|utf8.char は [[0.9.2]] では正常に動作しません。しかしながら、この問題は [[0.10.0]] 以降では存在しません。}}
+
使用方法の詳細は、 [http://milkpot.sakura.ne.jp/lua/lua53_manual_ja.html#6.5 リファレンスマニュアル]を参照してください。
  
  
 
==  用例  ==
 
==  用例  ==
ユーザが記述したテキストを表示してから、 UTF-8 モジュールを使用して消去します。
+
ユーザが入力したテキストを表示した後に、 UTF-8 モジュールを使用して消去します。
 
<source lang="lua">
 
<source lang="lua">
 
local utf8 = require("utf8")
 
local utf8 = require("utf8")
Line 41: Line 42:
 
function love.draw()
 
function love.draw()
 
     love.graphics.printf(text, 0, 0, love.graphics.getWidth())
 
     love.graphics.printf(text, 0, 0, love.graphics.getWidth())
 +
end
 +
</source>
 +
 +
 +
文字の演算により「ほ」を半濁音「ぽ」にします。これを応用することで、変換テーブルを組まなくても、全角・半角、新字体・旧字体、歴史的仮名遣い、ひらがな・カタカナの相互変換が行えるようになります。
 +
詳しくは、文字コード表 (Windows では文字コード表のアプリケーションを起動) を参照してください。
 +
<source lang=lua>
 +
local utf8 = require("utf8")
 +
 +
 +
function love.load()
 +
-- フォントの指定と設定を行ってください。
 +
end
 +
 +
function love.draw()
 +
code = utf8.codepoint('ほ')  + 2
 +
love.graphics.print(utf8.char(code), 20, 20)
 
end
 
end
 
</source>
 
</source>
Line 47: Line 65:
 
* [[parent::love (日本語)]]
 
* [[parent::love (日本語)]]
 
* [[love.textinput (日本語)]]
 
* [[love.textinput (日本語)]]
 +
* [http://qiita.com/masakielastic/items/75f4d6f0a72e52436d54 標準ライブラリの utf8 を使う - Qiita (masakielastic さん)]
 +
* [https://love2d.org/forums/viewtopic.php?t=82690 Polywell: a text editor component - LÖVE] (テキストエディタ・コンポーネント)
  
 
[[Category:Libraries (日本語)]]
 
[[Category:Libraries (日本語)]]
 +
[[Category:日本語]]
 
{{#set:Since=092}}
 
{{#set:Since=092}}
 
{{#set:PrettySince=0.9.2}}
 
{{#set:PrettySince=0.9.2}}
{{#set:Description=このライブラリは UTF-8 符号化文字列を扱うため基本的な支援をします。}}
+
{{#set:Keyword=String}}
 +
{{#set:Description=このライブラリは UTF-8 文字コード形式による文字列を扱うための基本機能を提供します。}}
 
{{#set:LOVE Version=0.9.2}}
 
{{#set:LOVE Version=0.9.2}}
 
==  そのほかの言語  ==
 
==  そのほかの言語  ==
{{i18n|utf8}}
+
{{i18n (日本語)|utf8}}

Latest revision as of 12:48, 27 July 2023

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


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


このライブラリは UTF-8 文字コード形式 (encoding) による文字列を扱うための基本機能があります。

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

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


用例

ユーザが入力したテキストを表示した後に、 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


文字の演算により「ほ」を半濁音「ぽ」にします。これを応用することで、変換テーブルを組まなくても、全角・半角、新字体・旧字体、歴史的仮名遣い、ひらがな・カタカナの相互変換が行えるようになります。 詳しくは、文字コード表 (Windows では文字コード表のアプリケーションを起動) を参照してください。

local utf8 = require("utf8")


function love.load()
-- フォントの指定と設定を行ってください。
end

function love.draw()
	code = utf8.codepoint('ほ')  + 2
	love.graphics.print(utf8.char(code), 20, 20)
end

関連



そのほかの言語