Your Logo
Documentation made easier

POD2::JA::Unicode::GCString

NAME
SYNOPSIS
DESCRIPTION
CAVEATS
VERSION
SEE ALSO
AUTHOR
COPYRIGHT

NAME

Unicode::GCString~[ja] − UAX #29 書 記 素 ク ラ ス タ の 列 と し て の 文 字 列

SYNOPSIS

use Unicode::GCString;
$gcstring = Unicode::GCString−>new($string);

DESCRIPTION

Unicode::GCString は Unicode文 字 列 を 、 Unicode標 準 附 属 書 29 [ UAX #29] で 定 義 さ れ る 「 拡 張 書 記 素 ク ラ ス タ 」 〔 extended grapheme cluster〕 の 列 と し て 扱 う 。 書 記 素 ク ラ ス タ 〔 grapheme cluster〕 は 、 Unicode文 字 の 列 で 、 ひ と つ の 書 記 素 基 底 〔 grapheme base〕 と 、 付 加 的 な 書 記 素 エ キ ス テ ン ダ 〔 grapheme extender〕 お よ び /ま た は 「 前 置 」 文 字 〔 “prepend” character〕 か ら 成 る 。 こ れ は 人 が 「 文 字 」 と み な す も の に 近 い 。 公 開 イ ン タ フ ェ ー ス コ ン ス ト ラ ク タ
new ( STRING, [ KEY => VALUE, ... ])
new ( STRING, [ LINEBREAK ]) コ ン ス ト ラ ク タ 。 Unicode文 字 列 STRING か ら 新 た に 書 記 素 ク ラ ス タ 文 字 列 (Unicode::GCString オ ブ ジ ェ ク ト ) を 作 る 。

KEY => VALUE の 対 に つ い て は "オ プ シ ョ ン " in Unicode::LineBreak~[ja]を 参 照 。 第 二 の 形 式 で は 、 Unicode::LineBreak~[ja] オ ブ ジ ェ ク ト LINEBREAK で 分 節 の 仕 様 を 決 定 す る 。 : 最 初 の 形 式 は リ リ ー ス 2012.10 で 導 入 さ れ た 。

copy コ ピ ー コ ン ス ト ラ ク タ 。 書 記 素 ク ラ ス タ 文 字 列 の 複 製 を 作 る 。 新 た な 文 字 列 で は 、 次 の 位 置 は 先 頭 に な る 。 長 さ
chars イ ン ス タ ン ス メ ソ ッ ド 。 書 記 素 ク ラ ス タ 文 字 列 に 含 ま れ る Unicode文 字 の 数 、 つ ま り Unicode文 字 列 と し て の 長 さ を 返 す 。
columns イ ン ス タ ン ス メ ソ ッ ド 。 組 み 込 み の 文 字 デ ー タ ベ ー ス で 決 定 さ れ る 書 記 素 ク ラ ス タ 文 字 列 の 桁 数 を 返 す 。 詳 し く は " DESCRIPTION" in Unicode::LineBreak~[ja] を 参 照 。
length イ ン ス タ ン ス メ ソ ッ ド 。 書 記 素 ク ラ ス タ 文 字 列 に 含 ま れ る 書 記 素 ク ラ ス タ の 数 を 返 す 。 文 字 列 と し て の 操 作
as_string
""" OBJECT """ イ ン ス タ ン ス メ ソ ッ ド 。 書 記 素 ク ラ ス タ 文 字 列 を 明 示 的 に Unicode文 字 列 に 変 換 す る 。
cmp ( STRING )
STRING
"cmp" STRING イ ン ス タ ン ス メ ソ ッ ド 。 文 字 列 を 比 較 す る 。 特 に 風 変 わ り な と こ ろ は な い 。 文 字 列 の ど ち ら か が Unicode文 字 列 で も よ い 。
concat ( STRING )
STRING
"." STRING イ ン ス タ ン ス メ ソ ッ ド 。 書 記 素 ク ラ ス タ 文 字 列 を 結 合 す る 。 STRING の ど ち ら か が Unicode文 字 列 で も よ い 。 結 果 の 文 字 列 の 桁 数 (columns() を 参 照 ) や 書 記 素 ク ラ ス タ の 数 (length() を 参 照 ) は 、 ふ た つ の 文 字 列 の そ れ の 和 に な る と は か ぎ ら な い こ と に 注 意 。 新 た な 文 字 列 で は 、 次 の 位 置 は 左 辺 の 文 字 列 に セ ッ ト さ れ て い た 位 置 に な る 。
join ([ STRING, ... ]) イ ン ス タ ン ス メ ソ ッ ドSTRING を 、 書 記 素 ク ラ ス タ 文 字 列 を は さ ん で つ な げ る 。 STRING の う ち に Unicode文 字 列 が あ っ て も よ い 。
substr ( OFFSET, [ LENGTH, [ REPLACEMENT ]]) イ ン ス タ ン ス メ ソ ッ ド 。 書 記 素 ク ラ ス タ 文 字 列 の 部 分 文 字 列 を 返 す 。 OFFSETLENGTH は 書 記 素 ク ラ ス タ で 数 え る 。 REPLACEMENT を 指 定 す る と 、 部 分 文 字 列 を そ れ で 置 き 換 え る 。 REPLACEMENT は Unicode文 字 列 で も よ い 。

Note: こ の メ ソ ッ ド は 組 み 込 み 関 数 substr() と 異 な り 、 左 辺 値 を 返 す こ と は な い 。 書 記 素 ク ラ ス タ の 列 と し て の 操 作

as_array
"@{" OBJECT "}"
as_arrayref イ ン ス タ ン ス メ ソ ッ ド 。 書 記 素 ク ラ ス タ 文 字 列 を 、 書 記 素 ク ラ ス タ の 情 報 の 配 列 に 変 換 す る 。

eos イ ン ス タ ン ス メ ソ ッ ド 。 現 在 の 位 置 が 書 記 素 ク ラ ス タ 文 字 列 の 最 後 か ど う か 調 べ る 。

item ([ OFFSET ]) イ ン ス タ ン ス メ ソ ッ ド 。 OFFSET番 め の 書 記 素 ク ラ ス タ を 返 す 。 OFFSET を 指 定 し な い と 、 次 の 位 置 の 書 記 素 ク ラ ス タ の 情 報 を 返 す 。
next
"<" OBJECT ">" イ ン ス タ ン ス メ ソ ッ ド 、 反 復 的 。 次 の 位 置 の 書 記 素 ク ラ ス タ を 返 し 、 次 の 位 置 を ひ と つ 進 め る 。
pos ([ OFFSET ]) イ ン ス タ ン ス メ ソ ッ ドOFFSET を 指 定 し た 場 合 は 、 次 の 位 置 を そ れ に す る 。 書 記 素 ク ラ ス タ 文 字 列 の 次 の 位 置 を 返 す 。 そ の 他

lbc イ ン ス タ ン ス メ ソ ッ ド 。 最 初 の 書 記 素 ク ラ ス タ の 最 初 の 文 字 の 行 分 割 ク ラ ス

(Unicode::LineBreak~[ja] 参 照 ) を 返 す 。
lbcext イ ン ス タ ン ス メ ソ ッ ド 。 最 後 の 書 記 素 ク ラ ス タ の 最 後 の 書 記 素 エ キ ス テ ン ダ の 行 分 割 ク ラ ス (Unicode::LineBreak~[ja] 参 照 ) を 返 す 。 書 記 素 エ キ ス テ ン ダ が な い か 、 ま た は ク ラ ス が CM の 場 合 は 、 最 後 の 書 記 素 基 底 の 行 分 割 ク ラ ス を 返 す 。

CAVEATS

• 書 記 素 ク ラ ス タ を 「 書 記 素 」 と 呼 ぶ べ き で は な い

(ラ リ ー は そ う 呼 ぶ が )。

Perl の 5.10.1 版 あ た り で は 、 Unicode::GCString オ ブ ジ ェ ク ト か ら Unicode 文 字 列 へ の 暗 黙 の 変 換 が "utf8_mg_pos_cache_update" キ ャ ッ シ ュ を 混 乱 さ せ る こ と が あ る 。 た と え ば 、 つ ぎ の よ う に

$sub = substr($gcstring, $i, $j); す る か わ り に 、 つ ぎ の よ う に す る と よ い 。

$sub = substr("$gcstring", $i, $j);
$sub = substr($gcstring−>as_string, $i, $j);

• こ の モ ジ ュ ー ル で は 「 初 期 の 」 書 記 素 ク ラ ス タ 境 界 判 別 ア ル ゴ リ ズ ム を 実 装 し て い る 。 手 直 し 〔

tailoring〕 の 機 構 に は ま だ 対 応 し て い な い 。

VERSION

$VERSION 変 数 を 参 照 し て ほ し い 。 非 互 換 な 変 更
2013.10

new() メ ソ ッ ド は 非 Unicode文 字 列 を 引 数 に 取 れ る よ う に な っ た 。 そ の 場 合 、 文 字 列 を iso−8859−1 (Latin 1) キ ャ ラ ク タ セ ッ ト で 復 号 す る 。 以 前 の リ リ ー ス で は 、 こ の メ ソ ッ ド に 非 Unicodeを 入 力 す る と 死 ぬ よ う に な っ て い た 。

SEE ALSO

[ UAX #29] Mark Davis (ed.) (2009−2013). Unicode Standard Annex #29: Unicode Text Segmentation, Revisions 15−23. <http://www.unicode.org/reports/tr29/>.

AUTHOR

Hatuka*nezumi − IKEDA Soji <hatuka(at)nezumi.nu>

COPYRIGHT

Copyright (C) 2009−2013 Hatuka*nezumi − IKEDA Soji.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.