2012-12-13 3 views
3

나는 링크에게 그들이 방식을 유지하고, HTML 깔끔한 IDN 인코딩을 유지하려면 어떻게해야합니까?

<a href="http://www.äöü.com/">Link</a> 

그것이 내가 단정 어떻게 알 수 있습니까

<a href="http://www.%C3%A4%C3%B6%C3%BC.de/">Link</a> 

하게

같은에서 HTML 지저분하게 사용하고 있습니다?

내 구성 :

'output-xhtml' => true, 
'numeric-entities' => true, 
'hide-comments' => false, 
'show-body-only' => true, 
'doctype' => 'transitional', 
'wrap' => 0, 
'alt-text' => '', 
'word-2000' => true, 
'drop-proprietary-attributes' => true 

는 또한 fix-uri을 해제하고 utf8char-encoding을 설정하지만, 아무 소용에 시도했습니다.

내가 이것을하고 싶은 이유는 Firefox가 최근 이런 종류의 URL 인코딩에 문제가 있었기 때문입니다. 최신 버전의 Firefox에서 www.v % C3 % A4terwiderstand.de를 방문해보십시오. stackoverflow가 움라우트가 포함 된 도메인을 처리 할 수없는 것처럼 보이기 때문에 실제 링크를 만들 수는 없습니다. "서버를 찾을 수 없음"오류가 표시됩니다. URL 바에 입력을 단순히 입력하면 웹 사이트가 제대로 열립니다. 내가 아는 한 다른 브라우저에서는 이러한 일이 발생하지 않습니다.

도움이 될 것입니다.

답변

1

ENV가 어떻게 생겼는지 잘 모르겠지만이 방법이 효과적입니다. fix-uri=no|0은 저에게 필요한 전부입니다. 좋은 측정 값으로 char-encoding 인수를 추가했습니다. Perl의 깔끔한 정리는 깔끔한 lib를 감싸므로 인수를 변환 한 후 대부분의/깔끔한 사용에 유효해야합니다.

#!/usr/bin/env perl 
use strictures; 
use utf8; 
use open qw(:std :utf8); 
use HTML::Tidy; 

print HTML::Tidy 
    ->new({ "show-body-only" => 1, 
      "char-encoding" => "utf8", 
      "fix-uri" => 0, }) 
    ->clean(q{<a href="http://www.äöü.com/">Link</a>}); 

__END__ 
<a href="http://www.äöü.com/">Link</a> 
+1

늦게 답변을 드려 죄송합니다. 그러나 귀하의 솔루션은 정확합니다. 'fix-uri'는 그 행동을 제거합니다. 내 문제는 내가 작업하고 있던 시스템 때문이었습니다. 시스템의 다른 부분이 다시 설정을 덮어 쓰고 있기 때문에 나는 그럴싸하게 그 옵션을 바꿀 수 있었고 어떤 차이도 볼 수 없었습니다. 오 잘! –