2012-07-05 10 views
9

Tôi đang sử dụng wget cục bộ để chụp nhanh một ứng dụng web nhỏ. Khi tôi làm như vậy, các tệp html kết quả sẽ trở lại với các ký tự lạ thay cho dấu ngoặc kép và dấu nháy đơn.wget và các ký tự đặc biệt

Tôi có thể làm gì để tránh hành vi này?

Cảm ơn.

+1

How are you kiểm tra các tập tin kết quả? Có khả năng là tệp có mã hóa UTF-8 và bạn cần kiểm tra chúng trong trình chỉnh sửa hoặc trình duyệt web hiểu rằng chúng là UTF-8. –

+0

@Brett Bạn giải quyết vấn đề này như thế nào? – SJU

+0

@AngelTsankov, đã lâu rồi, nhưng tôi không nghĩ mình đã từng tìm được giải pháp. – Brett

Trả lời

6

Có vẻ như bạn cần chỉ định --remote-encoding có lẽ --remote-encoding=utf-8.

+1

Tôi đã thử rằng (nên có đề cập rằng trong câu hỏi của tôi) và có "wget: tùy chọn không được công nhận" --remote-encoding = utf-8 '. --remote-encoding không hiển thị khi tôi gọi -h để được giúp đỡ Có thể vì tôi đang ở trên các cửa sổ? – Brett

+0

Và bạn chắc chắn rằng cài đặt miền địa phương của bạn là chính xác? – Thor

+0

Bạn đang chạy phiên bản 'wget' nào?' Wget --version'. – Thor

0

Tôi gặp vấn đề tương tự nhưng sau đó tôi phát hiện ra rằng trình duyệt của tôi đã hiển thị trang web bị lỗi. Ví dụ trong Firefox tôi chỉ cần thay đổi View -> Character Encoding -> Unicode.

+0

Điều này giải quyết vấn đề cũng cho tôi, nhưng chỉ cho một trang. Sau khi điều hướng đến trang tiếp theo được tải xuống bởi wget, tôi đã một lần nữa thay đổi mã hóa của Firefox thành Unicode. – user1364368

9

tôi sẽ đề nghị cố gắng với:

--restrict-file-names=nocontrol 

Nguồn: http://www.win.tue.nl/~aeb/linux/misc/wget.html

+1

Cảm ơn bạn! Tôi đã có một vấn đề hơi khác nhau nhưng liên quan, và tùy chọn này (mặc dù với 'ascii' thay vì' nocontrol') cuối cùng đã cho tôi giải pháp tôi cần. Bằng cách nào đó tôi bỏ qua nó khi đọc người đàn ông wget. –

0

Tôi có vấn đề như vậy quá. Có vẻ như trang tôi tải xuống đã được tải xuống. Bạn có thể kiểm tra điều này bằng tùy chọn -S trong wget. Bạn sẽ tìm thấy một

Content-Encoding: gzip

dòng. Trong trường hợp này tôi sử dụng zcat để đọc tệp.

0

Dường như wget không thể đoán mã hóa, do đó bạn cần điều này để đáp ứng html của bạn trong ứng dụng web của bạn:

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

0

tôi đã này khác nhau cùng một vấn đề (một tấm gương wget với ký tự đặc biệt và dấu ngoặc kép được hiển thị dưới dạng Unicode "char chưa biết", ?) khi duyệt qua gương.

Sự cố được chuyển sang liên quan đến các mã hóa máy chủ khác nhau, thay vì tùy thuộc vào wget. Máy chủ gốc là một cài đặt Windows + IIS cũ được cấu hình để phục vụ các trang HTML với mã hóa ISO-8859, trong khi máy nhân bản là một máy chủ Linux + Apache được cấu hình để phục vụ các trang UTF-8.

Giải pháp là để cấu hình Apache để phục vụ các trang tiêu chuẩn ISO-8859, thêm vào các máy chủ ảo đúng chỉ thị AddDefaultCharset ISO-8859-1