2012-07-05 103 views
9

我在本地使用wget獲取小型Web應用程序的靜態快照。當我這樣做時,生成的html文件會用奇怪的字符替代引號和撇號。wget和特殊字符

我該怎麼做才能避免這種行爲?

謝謝。

+1

你如何檢查生成的文件?文件很可能具有UTF-8編碼,您需要在編輯器或Web瀏覽器中檢查它們,以瞭解它們是否爲UTF-8。 – 2012-07-05 18:37:17

+0

@Brett你是如何解決這個問題的? – SJU 2014-06-17 17:51:52

+0

@AngelTsankov,現在已經有一段時間了,但我不認爲我找到了解決方案。 – Brett 2014-06-27 14:25:24

回答

6

聽起來像你需要指定--remote-encoding也許--remote-encoding=utf-8

+1

我試過了(應該提到在我的問題中),並得到了「wget:unrecognized option'--remote-encoding = utf-8' - 當我呼叫-h尋求幫助時,--remote-encoding不顯示。那可能是因爲我在windows上嗎? – Brett 2012-07-05 18:50:25

+0

你確定你的本地終端區域設置是正確的? – Thor 2012-07-05 18:51:36

+0

你運行的是哪個版本的'wget'?wget --version'。 – Thor 2012-07-05 18:52:39

0

我有這個相同的問題,但後來我發現我的瀏覽器顯示錯誤的enconding的網頁。例如在Firefox中,我只需要更改視圖 - >字符編碼 - > Unicode。

+0

這也解決了我的問題,但僅限於一頁。瀏覽到由wget下載的下一頁後,我再次將Firefox的編碼更改爲Unicode。 – user1364368 2014-11-30 21:26:45

9

我建議,試圖:

--restrict-file-names=nocontrol 

來源:http://www.win.tue.nl/~aeb/linux/misc/wget.html

+1

謝謝!我有一個稍微不同但相關的問題,並且這個選項(儘管用'ascii'而不是'nocontrol')最終給了我需要的解決方案。不知何故,我在閱讀wget男人時跳過了它。 – 2015-09-11 15:56:02

0

我有這樣的問題了。看起來我正在下載的頁面被gziped了。 您可以使用wget中的-S選項進行檢查。 你會發現一個

內容編碼:gzip

線。在這種情況下,我使用zcat來讀取文件。

0

似乎wget無法猜測的編碼,所以你需要這在你的web應用程序的HTML響應:

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

0

我這個變化同樣的問題(一wget鏡特殊字符和在瀏覽鏡像時引號顯示爲Unicode「unknown char」,?)。

問題轉向與不同的服務器編碼有關,而不是依賴於wget。原始服務器是一箇舊的Windows + IIS安裝,配置爲使用ISO-8859編碼提供HTML頁面,而該鏡像是配置爲提供UTF-8頁面的Linux + Apache服務器。

解決的辦法是配置Apache服務ISO-8859頁,添加到右側的虛擬主機的指令AddDefaultCharset ISO-8859-1