귀하의 질문 제목 당신은 당신이 "라틴어 싶은 말은 당신의 질문의 본문에 다음"CP1252 "하지만 원하는 말한다 단순화 할 수있다 -1". CP1252와 Latin-1은 같은 것이 아닙니다. CP1252는 Latin-1을 기반으로하지만 Microsoft가 유용하지 않은 문자 중 일부는 다른 문자로 대체 한 Microsoft 인코딩입니다.
예를 들어 CP1252에서 0x93은 왼쪽 큰 따옴표 (")이지만 Latin-1에서는 인쇄 할 수없는 제어 코드입니다.
Perl의 내부 인코딩은 (거의는 아니지만) UTF-8입니다. 당신은 CP1252 바이트를 가지고 같은 펄의 UTF-8 문자열 포맷으로 변환 할 수 있습니다 : CP1252에
use Encode qw(decode);
my $char = decode("CP1252", "\x80");
문자 0x80으로는 유로 기호입니다. 유니 코드에서 유로 기호는 U + 20AC입니다. 이제 $ char는 "\ x {20AC}"로 설정됩니다.
다음 문제는 문자를 "인쇄"하고 싶다는 것입니다. 그것은 많은 것을 의미 할 수 있습니다. 문제는 Perl의 내부 문자 표현을 출력 장치가 기대하는 인코딩으로 변환해야한다는 것입니다.
예를 들어 내 리눅스 터미널 창은 그래서는 유로 문자를 인쇄하기 위해 다음을 수행 할 UTF-8을 표시 행복 : 윈도우에서 작동하지 않을 것입니다
binmode(STDOUT, ':utf8');
print $char, "\n";
비록 명령 프롬프트.
HTML 출력을 생성하는 경우 UTF-8을 작성하고 적절한 헤더로 인코딩을 선언해야합니다. 지난 10-15 년 동안 출시 된 거의 모든 브라우저에서 작동합니다.