Как запретить HTML Tidy кодировать IDN?

Я использую HTML Tidy и что-то вроде

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

это делает

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

Как мне сказать Tidy, чтобы ссылки оставались такими, какие они есть?

Моя конфигурация:

'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-encoding на utf8, но безрезультатно.

Причина, по которой я хочу это сделать, заключается в том, что у Firefox недавно возникли проблемы с кодировкой URL такого типа. Попробуйте посетить www.v%C3%A4terwiderstand.de в последней версии Firefox (я не могу сделать из него настоящую ссылку, поскольку stackoverflow, похоже, также не может обрабатывать домены с умляутами), и вы видите ошибку "сервер не найден". Тем не менее, просто нажав Enter в строке URL-адреса, вы откроете веб-сайт. Насколько мне известно, в других браузерах такого нет.

Любая помощь будет оценена по достоинству!


person Martin Denk    schedule 13.12.2012    source источник


Ответы (1)


Я не уверен, как выглядит ваш ENV и т. д., но это работает; fix-uri=no|0 это все, что мне было нужно. Я добавил аргумент char-encoding на всякий случай. Perl tidy обертывает аккуратную библиотеку, поэтому это должно быть допустимо для большинства/любого аккуратного использования после преобразования аргументов.

#!/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>
person Ashley    schedule 05.02.2013
comment
Извините за поздний ответ, но ваше решение абсолютно правильное. fix-uri удаляет это поведение. Моя проблема была вызвана системой, с которой я работал. Я мог бы весело менять эти параметры и никогда не видел никакой разницы, потому что другая часть системы снова перезаписывала настройки. Ну что ж! - person Martin Denk; 20.03.2013