utf8フラグ付き文字列の大きさ
文字列のサイズの取得にはlength関数を使いますが、utf8フラグがついていると文字数が返ってきます。
文字数ではなくバイト数が欲しい場合にはencodeしてからlength関数を使います。
use strict; use warnings; use v5.10; use utf8; use Encode; my $text = 'Perlで書く'; say "length: ", length $text; # 7 say "utf8 : ", length Encode::encode('utf8', $text); # 13 say "cp932 : ", length Encode::encode('cp932', $text); # 10 say "euc-jp: ", length Encode::encode('euc-jp', $text); # 10
関連項目
・length関数・文字列長の取得