Difference between revisions of "utf8 (日本語)"
m |
m |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{newin (日本語)|[[0.9.2]]|092|type=モジュール}} | {{newin (日本語)|[[0.9.2]]|092|type=モジュール}} | ||
− | + | {{notice|utf8.char は [[0.9.2 (日本語)|0.9.2]] では正常に動作しません。しかしながら、この問題は [[0.10.0 (日本語)|0.10.0]] 以降では存在しません。}} | |
− | + | このライブラリは UTF-8 文字コード形式 (encoding) による文字列を扱うための基本機能があります。 | |
+ | <!-- 原文は UTF-8 encoded strings (UTF-8 によりエンコードされた) ですが、翻訳として不適切ですので、今の訳出にしてあります。もちろん、エンコードがなにを指しているか注意深く察する必要があります。--> | ||
+ | |||
+ | このライブラリの関数は <code>require("utf8")</code> により返されたテーブルとして実装しています。このライブラリで扱えるのは UTF-8 文字コード形式であり、それ以外の Unicode 規格による文字コード形式には対応していません。文字の分類など文字の意味を求める操作はすべて適用範囲外です。 | ||
使用方法の詳細は、 [http://milkpot.sakura.ne.jp/lua/lua53_manual_ja.html#6.5 リファレンスマニュアル]を参照してください。 | 使用方法の詳細は、 [http://milkpot.sakura.ne.jp/lua/lua53_manual_ja.html#6.5 リファレンスマニュアル]を参照してください。 | ||
− | |||
− | |||
== 用例 == | == 用例 == | ||
− | + | ユーザが入力したテキストを表示した後に、 UTF-8 モジュールを使用して消去します。 | |
<source lang="lua"> | <source lang="lua"> | ||
local utf8 = require("utf8") | local utf8 = require("utf8") | ||
Line 45: | Line 46: | ||
− | + | 文字の演算により「ほ」を半濁音「ぽ」にします。これを応用することで、変換テーブルを組まなくても、全角・半角、新字体・旧字体、歴史的仮名遣い、ひらがな・カタカナの相互変換が行えるようになります。 | |
詳しくは、文字コード表 (Windows では文字コード表のアプリケーションを起動) を参照してください。 | 詳しくは、文字コード表 (Windows では文字コード表のアプリケーションを起動) を参照してください。 | ||
<source lang=lua> | <source lang=lua> | ||
+ | local utf8 = require("utf8") | ||
+ | |||
+ | |||
+ | function love.load() | ||
+ | -- フォントの指定と設定を行ってください。 | ||
+ | end | ||
+ | |||
function love.draw() | function love.draw() | ||
code = utf8.codepoint('ほ') + 2 | code = utf8.codepoint('ほ') + 2 | ||
love.graphics.print(utf8.char(code), 20, 20) | love.graphics.print(utf8.char(code), 20, 20) | ||
− | + | end | |
</source> | </source> | ||
Line 58: | Line 66: | ||
* [[love.textinput (日本語)]] | * [[love.textinput (日本語)]] | ||
* [http://qiita.com/masakielastic/items/75f4d6f0a72e52436d54 標準ライブラリの utf8 を使う - Qiita (masakielastic さん)] | * [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:Keyword=String}} | {{#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}} |
Latest revision as of 12:48, 27 July 2023
LÖVE 0.9.2 から使用可能 |
このモジュールは以前のバージョンでは非対応です。 |
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
関連
- love (日本語)
- love.textinput (日本語)
- 標準ライブラリの utf8 を使う - Qiita (masakielastic さん)
- Polywell: a text editor component - LÖVE (テキストエディタ・コンポーネント)