템플릿 툴킷이 인코딩을 제대로 처리하지 않는 것처럼 보입니다.템플릿 툴킷 문자 인코딩
template->process
파일 이름 (템플릿을 가져올 곳), 해시 참조 (모든 매개 변수 포함) 및 스칼라 참조 (출력 위치)를 전달하면 반환하고 차례대로 표시합니다. 사용자.
움라우트가 포함 된 문자열을 제공하면 html 출력에는 모든 문자 대신 올바른 흰색 문자 수의 흰색 물음표가있는 검은 색 다이아몬드가 포함됩니다. 다른 캐릭터는 괜찮습니다.
template-> process를 호출하기 전에 경고를 사용하고 있습니다.이 시점에서 괜찮은 것 같습니다. template->process
을 호출 할 때 쓰레기로 변환된다는 것을 알 수 있습니다.
아이디어가 있으십니까? ENCODING => "utf8"
과 binmode => ":utf8"
을 사용해 보았지만 둘 다 출력에 아무런 영향을주지 않습니다.
여기 내 코드는 템플릿 -> 프로세스에 대한 호출을 보여주기 위해 잘라낸 부분입니다. {binmode => 'utf8'}
을 생략해도 아무 효과가 없습니다.
<put variables in hash referenced to by vars>
<print out variables in has referenced to by $var>
my $data;
$template->process($self->filename, $vars, \$data, {binmode => ':utf8'}) || die "Template process failed: ", $template->error();
return $data;
귀하의 답변을 안녕하세요 덕분 해결, 문제는 후 템플릿 프로세스가 일을했다고 밝혀졌다, 우리는 그 다음 우리는 또한 그래서를 출력하기 전에 임시 파일에 문자열을 썼다 내가 :)
아마도 utf8 대신 UTF-8을 전달하면 무관합니다. 때로는 중요합니다. 예 : http://jeremy.zawodny.com/blog/archives/010546.html – Hugmeir
UTF-8 텍스트가 엉망이되었거나 브라우저가 올바른 인코딩을 선택하지 않았습니까? –
후자의 경우 어떻게 브라우저에 사용할 인코딩을 말할 수 있습니까? HTML 템플리트 pro (우리가 움직이는 시스템)를 사용하면 문자가 올바르게 표시됩니다. 이것은 내가 TT라고 믿게 만들었지 만 틀릴 수 있습니다. 기차에서 지금 내가 내일 어떤 제안이라도 시험해 볼 것일 정도로. – cjh