The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Unicode::BiDiRule~[ja] - RFC 5893 BiDi規則

SYNOPSIS

  use Unicode::BiDiRule qw(check);
  $result = check($string);
  %result = check($string);

DESCRIPTION

Unicode::BiDiRule は、RFC 5893に述べるBiDi規則にしたがって検査を行う。

なお当ドキュメントでは、「UTF-8」という語を本来の意味で用いる。

Function

check ( $string )

文字列がBiDi規則を満たすかどうか検査する。

Parameters:

$string

検査する文字列。ユニコード文字列またはバイト文字列。

バイト文字列は、ユニコードへアップグレードされることなく UTF-8列として扱われることに注意。

Returns:

スカラコンテキストでは、 規則を満たせば文字列の表示方向 (BIDIRULE_UNKNOWN (0)、BIDIRULE_LTRBIDIRULE_RTL)。そうでなければundef

配列コンテキストでは、 次のキーを持つ対によるリストで結果の詳細を返す。

result

"Constants"で述べる値のいずれか。

offset

検査が失敗したときは、文字列の先頭からのオフセット。 成功したときは、文字列の長さ。

オフセットや長さは、 バイト文字列ではバイト数、ユニコード文字列ではキャラクタ数で数える。

length

検査が失敗したときの、認められない部分文字列の長さ。

長さは、 バイト文字列ではバイト数、ユニコード文字列ではキャラクタ数で数える。 不正な列では未定義となる。

ord

lengthがある場合、認められない部分文字列の最初のキャラクタのユニコードスカラ値。

Unicode::BiDiRule::UnicodeVersion()

ユニコード文字データベースの版を返す。これは Unicode::UCD::UnicodeVersion() と同じであるはずである。

Constants

BIDIRULE_UNKNOWN
BIDIRULE_LTR
BIDIRULE_RTL
BIDIRULE_AVOIDED
BIDIRULE_DISALLOWED

検査の結果。 BIDIRULE_UNKNOWNは、文字列が空で表示方向を特定できなかったことを示す。 BIDIRULE_AVOIDEDは、認められなかったキャラクタが表示方向の制御に用いられるものであるため、表示すると問題が起こるかもしれないことを示す。

Exports

初期状態ではなにもエクスポートしない。 :all タグで check()および定数をエクスポートする。

RESTRICTIONS

check()はEBCDICプラットフォームでのユニコード文字列を検査できない。

CAVEATS

  • 当モジュールが提供できるレパートリと特性値は、Perl 本体のユニコードデータベースが提供するものにかぎられる。下表に、Perl の各版が実装するユニコードの版を示す。

      Perlの版           実装するユニコードの版
      ------------------ ------------------------------------
      5.8.0              3.2.0
      5.8.1 - 5.8.3      4.0.0
      5.8.4 - 5.8.6      4.0.1
      5.8.7 - 5.8.8      4.1.0
      5.10.0             5.0.0
      5.8.9, 5.10.1      5.1.0
      5.12.x             5.2.0
      5.14.x             6.0.0 (訂正#8を反映ずみ)
      5.16.x             6.1.0
      5.18.x             6.2.0
      5.20.x             6.3.0
      5.22.x             7.0.0 (2014-10-21付け誤植を修正ずみ)
  • LDHラベル (ASCIIの図形文字のみから成る文字列) は、BiDi規則をかならずしも満たさない。別の規則で検査すべきである。

SEE ALSO

RFC 5893 Right-to-Left Scripts for Internationalized Domain Names for Applications (IDNA). https://tools.ietf.org/html/rfc5893.

AUTHOR

Hatuka*nezumi - IKEDA Soji, <hatuka@nezumi.nu>

COPYRIGHT AND LICENSE

Copyright (C) 2015 by Hatuka*nezumi - IKEDA Soji

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. For more details, see the full text of the licenses at <http://dev.perl.org/licenses/>.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.