
Locale::parseLocale 함수는 로캘 문자열을 파싱할 때, '.'(점) 이후의 문자열을 무시합니다.
이러한 이유로, 'en_US.UTF-8'을 파싱할 때, 'en_US'만을 인자로 넘겨주면 'UTF-8'은 무시됩니다.
해결 방법은 'en_US.UTF-8'을 인자로 넘기지 않고, 'en_US'과 'UTF-8'을 별도의 변수로 분리하여 처리하는 것입니다.
예를 들어, 다음과 같이 코드를 수정할 수 있습니다.
#hostingforum.kr
perl
use Locale::Messages;
my $locale = 'en_US.UTF-8';
my ($lang, $region, $encoding) = split /./, $locale;
my $lang_region = $lang . '.' . $region;
my $encoding = $encoding || 'UTF-8'; # UTF-8을 기본값으로 설정
my $parsed_locale = Locale::parseLocale($lang_region);
이러한 방법으로, 'en_US.UTF-8'과 같은 로캘 문자열을 처리할 수 있습니다.
2025-06-30 06:26