2012-12-13 37 views
3

我使用HTML整洁,出来的东西像如何保持编码IDN的HTML Tidy?

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

它使

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

我如何告诉整洁保持联系会是这样的?

我的配置:

'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并设置char-encodingutf8,但无济于事。

我想这样做的原因是因为Firefox最近遇到了这种URL编码问题。尝试访问最新版本的Firefox中的www.v%C3%A4terwiderstand.de(我无法建立一个实际的链接,因为stackoverflow似乎也无法处理带有元音变音的域),你会看到“找不到服务器”错误。然而,只需点击地址栏中的输入即可打开网站。就我所知,这在其他浏览器中不会发生。

任何帮助,将不胜感激!

回答

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'消除了这种行为。我的问题是由我正在使用的系统造成的。我可以快速地改变这些选项,并且从来没有看到任何区别,因为系统的另一部分重新覆盖了设置。好吧! –