2012-07-05 7 views
9

Używam wget lokalnie do wykonania statycznej migawki małej aplikacji internetowej. Kiedy to zrobię, wynikowe pliki html powrócą z dziwnymi znakami zamiast cudzysłowów i apostrofów.wget i znaki specjalne

Co mogę zrobić, aby tego uniknąć?

Dzięki.

+1

Jak się bada wynikowe pliki? Jest całkiem prawdopodobne, że plik ma kodowanie UTF-8 i musisz je sprawdzić w edytorze lub przeglądarce internetowej, która rozumie, że są one UTF-8. –

+0

@Brett Jak rozwiązałeś ten problem? – SJU

+0

@Angel Tsankov, minęło trochę czasu, ale nie sądzę, żebym kiedykolwiek znalazł rozwiązanie. – Brett

Odpowiedz

6

Wygląda na to, że musisz podać --remote-encoding, być może --remote-encoding=utf-8.

+1

Próbowałem (powinienem wspomnieć o tym w moim pytaniu) i otrzymałem "wget: nierozpoznaną opcję" --remote-encoding = utf-8 '- - kodowanie przerwań nie pojawia się, gdy wywołuję -h, aby uzyskać pomoc Czy to możliwe, ponieważ jestem w systemie Windows? – Brett

+0

Jesteś pewien, że ustawienia lokalnego lokalnego terminalu są poprawne? – Thor

+0

Która wersja 'wget' jest uruchomiona?' Wget --version'. – Thor

0

Miałem ten sam problem, ale potem dowiedziałem się, że moja przeglądarka pokazała stronę z nieprawidłowym wejściem. Na przykład w przeglądarce Firefox wystarczy zmienić widok -> Kodowanie znaków -> Unicode.

+0

To rozwiązało problem także dla mnie, ale tylko dla jednej strony. Po przejściu do następnej strony pobranej przez wget ponownie musiałem zmienić kodowanie Firefoksa na Unicode. – user1364368

9

Sugerowałbym próbuje z:

--restrict-file-names=nocontrol 

Źródło: http://www.win.tue.nl/~aeb/linux/misc/wget.html

+1

Dziękujemy! Miałem nieco inny, ale powiązany problem, a ta opcja (chociaż z 'ascii' zamiast' nocontrol') w końcu dała mi rozwiązanie, którego potrzebowałem. Jakoś pominąłem to, czytając człowieka wget. –

0

miałem takiego problemu zbyt. Wygląda na to, że strona, którą pobierałem, była gzipowana. Możesz to sprawdzić, używając opcji -S w wget. Znajdziecie

Content-Encoding: gzip

linię. W takim przypadku używam Zcat do odczytu pliku.

0

Wydaje się, że nie można odgadnąć wget kodowanie więc trzeba to w swojej odpowiedzi html aplikacji internetowej:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

0

miałem ten sam problem zmieniać (a wget lustro ze znaków specjalnych i cudzysłowy pokazane jako Unicode "nieznany znak", ?) podczas przeglądania lustra.

Problem jest związany z kodowaniem różnych serwerów, a nie zależny od wget. Pierwotnym serwerem była stara instalacja w systemie Windows + IIS skonfigurowana do obsługi stron HTML z kodowaniem ISO-8859, natomiast serwer lustrzany był serwerem Linux + Apache skonfigurowanym do obsługi stron UTF-8.

Rozwiązaniem było skonfigurować Apache służyć stron ISO-8859, dodając do prawej wirtualnego hosta dyrektywę AddDefaultCharset ISO-8859-1