前のブログの続き。
lengthを使ったperlコードだと、調整が必要。
たとえば、Mac OS Xのperlで
use utf8;
print length (‘あいうえお’);
print “\n”;
は「5」とUnicodeでの字数を表すが、
print length (‘あいうえお’);
print “\n”;
のようにuse utf8;がないと「15」と、ASCIIの字数、すなわちバイト数を表す。
これはじゃあMacJPerlではどうだったかというと、
print length (‘あいうえお’);
print “\n”;
が「10」を表示する。
ShiftJISでのバイト数。
文字のコードの問題をいえば、Unicodeで005cである「\」(バックスラッシュ)はShift-JISには変換できない。
Shift-JISの5cに変換できるのは、Unicodeで00a5の「¥」。