13. ユニコード
ユニコードは、文章の符号化と表現のための標準で、ほぼ世界中の文字体系に対応できます。
UTF-8 は、ユニコードのすべての文字あるいはコードポイントを符号化できる、文字符号化の方法です。
文字は、以下のものから定義されます:
書記素: 視覚的表現
コードポイント: 文字に割り当てられる番号
13.1. ユニコードを使う
ユニコードを使って文字を出力する方法を見てみましょう。
say "a";
say "\x0061";
say "\c[LATIN SMALL LETTER A]";
上の3行のコードはそれぞれ文字を作る別々の方法を示しています:
-
文字を直接入力する方法(書記素)
-
\x
とコードポイントを使う方法 -
\c
とコードポイント名を使う方法
では、スマイリーを出力してみましょう。
say "☺";
say "\x263a";
say "\c[WHITE SMILING FACE]";
2つのコードポイントを組み合わせる例です。
say "á";
say "\x00e1";
say "\x0061\x0301";
say "\c[LATIN SMALL LETTER A WITH ACUTE]";
文字 á
は、次のように書くことができます:
-
この文字のユニークなコードポイント
\x00e1
-
あるいは、
a
とアクセント記号のコードポイントの組み合わせ\x0061\x0301
いくつかのメソッドが使えます:
say "á".NFC;
say "á".NFD;
say "á".uniname;
出力
NFC:0x<00e1> NFD:0x<0061 0301> LATIN SMALL LETTER A WITH ACUTE
NFC
は、ユニークなコードポイントを返します。
NFD
は、文字を分解してそれぞれのコードポイントを返します。
uniname
は、コードポイント名を返します。
ユニコード文字を識別子として使うことができます:
my $Δ = 1;
$Δ++;
say $Δ;