Thursday, January 04, 2007
Perl/펄] 문자열 길이, 사이즈(글자 수/바이트 수) 구하기; String Length, Size
length() 라는 함수로 문자열의 길이를 구할 수 있습니다. 영문 문자열은 글자수와 바이트 수가 일치하지만, 한글은 2바이트 문자이기에, 글자수의 2배로 나옵니다.
위의 소스를 한글 완성형으로 저장하면 "똠방각하"가 8바이트로 나오지만,
만약 UTF-8 로 저장하면, 12바이트로 나옵니다.
UTF-8에서 한글 1글자는 3바이트이기에 그렇습니다.
이때는 소스에
use utf8;
이런 줄을 추가하면 "똠방각하"의 글자수인 4 가 정확히 나옵니다.
▶▶ Perl/펄] 한글 글자 개수, 바이트 수 (UTF-8 유니코드 문자열) 구하기; Unicode Hangul Byte
문자열 길이 구하기 예제 소스
#!/usr/bin/perl
use strict; use warnings;
my $s = "ABCD";
print length($s), "\n";
# 출력 결과: 4
$s = "FOO";
print length($s), "\n";
# 출력 결과: 3
$s = "똠방각하";
print length($s), "\n";
# 출력 결과: 8
use strict; use warnings;
my $s = "ABCD";
print length($s), "\n";
# 출력 결과: 4
$s = "FOO";
print length($s), "\n";
# 출력 결과: 3
$s = "똠방각하";
print length($s), "\n";
# 출력 결과: 8
위의 소스를 한글 완성형으로 저장하면 "똠방각하"가 8바이트로 나오지만,
만약 UTF-8 로 저장하면, 12바이트로 나옵니다.
UTF-8에서 한글 1글자는 3바이트이기에 그렇습니다.
이때는 소스에
use utf8;
이런 줄을 추가하면 "똠방각하"의 글자수인 4 가 정확히 나옵니다.
▶▶ Perl/펄] 한글 글자 개수, 바이트 수 (UTF-8 유니코드 문자열) 구하기; Unicode Hangul Byte
tag: perl
Perl | 펄
<< Home