camel

���㤢����

length�ؿ���ʸ�����Ĺ������� - perl�鿴��BLOG - Hatena::Group::Perl
���ܸ��ʸ���������Τ˵�᤿����硢use encoding����ꤹ��

use encoding;�ϡ�jperl�ʤɡ����Ĥ�¸�ߤ���L10N���줿perl�Ѥ˽񤫤줿�쥬����������ץȤ򡢥����perl��ư�����Ȥ��Τ���Τ��ޤ��ʤ��Ǥ�������������Ū�����Ѥ��٤��ǤϤ���ޤ���

���Τ�����Τ��Ȥϡ�����

�Ǥ�񤤤��ΤǤ���������ʤ��ȤʤΤǤޤ��񤭤ޤ���

������ץȤ�UTF-8�ǽ񤭡�use utf8;����

�Τ������Perl�Τ������Ǥ���

#!/usr/bin/perl
use strict;
use warnings;
{
  my $string = "dankogai������";
  printf "length('%s') == %d\n", $string, length($string);
}
{
  use utf8;
  my $string = "dankogai������";
  printf "length('%s') == %d\n", $string, length($string);
}

���Ƥ��̤ꡢutf8�ץ饰�ޤ� lexical scope �Ǹ����ޤ���encoding�ץ饰�ޤǤϤ����ϹԤ��ޤ���

Wide character in print�Ȥ��� warning ���ФƤ��ޤ���������ϡ�UTF-8�Ȥ��ư����Ƥ���ʸ����򡢥Х��ȥ��ȥ꡼��Ȥ��ư��äƤ��ޤ��פȤ����ٹ�Ǥ��������ä�����ˤϡ�STDOUT��UTF-8���ȥ꡼��Ǥ��뤳�Ȥ򶵤���ɬ�פ�����ޤ���

���ȡ�utf8�ץ饰�ޤ������Ƥ�����֤ǡ�ʸ���󤬲�ʸ�����ǤϤʤ�ʸ���󤬲��Х��Ȥ����Τ뤿��ˤϡ�bytes::length()��Ȥ��ޤ���

�ʾ��դޤ�������ץ뤬�ʲ��Ǥ���

#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use bytes (); # () ��˺��ʤ�

my $string = "dankogai������";
binmode STDOUT, ':utf8'; # STDOUT��UTF-8���ȥ꡼��
printf "length('%s') == %d\n", $string, length($string);
printf "bytes::length('%s') == %d\n", $string, bytes::length($string);

UTF-8�ʳ���ʸ�������ɤϡ����������뤫�Х�����Ȥ���ɽ���������Encode�ǽ�������

����Ū�ʤ�����ϰ����񤤤��Ȥ���Ǥ���

�ɤ����Ƥ⳰�����������ʤ����ˤϡ�����Ū�˥Х�����Ȥ���ɽ�����ޤ��礦���ʲ��Ϥ�����Ǥ���

#!/usr/bin/perl
use strict;
use warnings;
use Encode;

my $bytes = "\x95\x5C"; # ��ɽ�פ�Shift_JIS��
my $string = decode "sjis", $bytes;
printf "length(\$string) == %d\n", length($string);
printf "length(\$bytes) == %d\n", length($bytes);

�ʤ��������٤����Ȥ����ȡ�Shift_JIS��BIG-5�ʤɤǤϡ�2�Х���ʸ�����ASCII�ε��椬�����äƤ��ޤ����Ȥ����뤫��Ǥ����ʲ��Υ����ɤ�Shift_JIS����¸���Ƴ�ǧ���ƤߤƤ���������

#!/usr/bin/perl
use strict;
use warnings;
use Encode;

my $bytes = "ɽ";
my $string = decode "sjis", $bytes;
printf "length(\$string) == %d\n", length($string);
printf "length(\$bytes) == %d\n", length($bytes);

����ϡ�ɽ��SJISɽ����\x95\x5C����Х����ܤ��Хå�����å���ʤΤǡ�"ɽ"��"\x95\""�Ȳ�ᤵ��Ƥ��ޤ�����Ǥ���EUC�ǤϤ������������ȯ�����ʤ��ΤǤ�����������������Τ狼��ˤ����ȼ�֤�ͤ����顢�����ʥ�����ץȤϤϤ��ᤫ��UTF-8�ǽ񤯤Τ�����Ū�˰��ֳڤ���ˡ�Ȥ������Ȥˤʤ�ޤ���

use encoding;�ǿ����ʥ�����ץȤ�񤫤ʤ�

�Ȥ����櫓������ʤ��ȤʤΤ����ٸ����ȡ�use encoding;�Ϥɤ����Ƥ�줤������ץȤ�ư���������Ȥ������˻Ȥ��������ʥ�����ץȤ�UTF-8�ǽ񤯤褦�ˤ��ޤ��礦�������ˤʤ�뤫�Ϥ��Ƥ������Թ��ˤ�����Ψ�Ϥ��äȲ�����ޤ���

Dan the Maintainer Thereof