2015-02-06 2 views
0

글쎄,이게 이상하고 어려운 일이 무엇인지 설명하기는 어렵지만 최선을 다할 것입니다.Perl 촉매 인코딩 문제

템플릿에 대한 값이 인코딩을 변경하는 이유는 무엇입니까?

컨트롤러 파일 (인코딩 된 UTF-8) :

print STDERR "ąęść"; 
$c->stash->{some_variable} = "ąęść"; # some unicode chars 

템플릿 파일 (UTF-8로 인코딩) : 브라우저에서 출력 내가

[% some_variable %]<br> 
test: ąęść 

납니다으로 :

ÄÄÅÄ 
test: ąęść 

콘솔 출력 (UTF-8 인코딩 사용) :

ąęść 
+1

컨트롤러 파일에'use utf8;'이 있습니까? – ThisSuitIsBlackNot

+4

TT 설정에'ENFODING => 'utf-8''이없는 것 같습니다. – Borodin

+0

구성이 정상입니다. 어떤 이유로 템플릿 파일 내용이 손상되었습니다. 템플릿 파일에서 모든 것을 제거하고 거기에 변수 만 놓으면 ... – J33nn

답변

2

Catalyst Wiki에서 제공 한 좋은 설명서를 Using UnicodeCatalyst::View::TT으로 보내주십시오. Perl Unicode Cookbook은 UTF-8의 Perl 지원에 대해 더 잘 이해할 수 있도록 도와줍니다. 일반적으로 다른 언어보다 많이 사용됩니다.

편집기를 사용하여 UTF-8 BOM 표시로 템플릿을 저장해야 할 수도 있습니다. 따라서 텍스트 편집기는 저장하거나 BOM을 설정하지 않을 경우 템플릿 파일을 올바르게 인코딩하므로 파일 인코딩을 UTF- 당신이 그것을 구할 때마다 8.

1

일반적으로 Catalyst (5.90084)의 최신 안정 릴리스가있는 유니 코드 지원 및 UTF-8에 대한 수정 사항이 많이 있습니다. Catalyst는 기본적으로 UTF-8이지만, 물론 항상 어려운 부분이 있습니다. 주제에 대한 최신 문서를 검토하여 잘못된 점을 확인해야합니다.

템플릿에 멀티 바이트 문자가 포함 된 경우 실제로 BOM을 설정하거나 선택한 템플릿보기에 대한 설명서를 검토해야합니다.