如何批量恢復下載的日文網頁亂碼的文件名?

用teleport下載了某日文網站網頁,但是幾乎所有下載的htm網頁文件名均亂碼(如圖所示),致離線文件中的超鏈接失聯,無法讀取文件與文件之間的聯繫。有些htm文件擴展名居然亂碼成了?htm(正確的應該是.htm),當然擴展名後綴的亂碼可以手動批量修改。那麼怎樣恢復文件名的亂碼呢?在PC上如何批量操作?請大神指教。

PS 網頁文件內容沒有丟失。用chrome瀏覽器能夠正常瀏覽,只是htm文件名產生了亂碼的現象!請教諸位高手。謝謝


經驗:出現一大堆「縺」字,是平假名用 UTF-8 編碼後用 Shift-JIS 解碼得到的結果。


通過 @王贇 Maigo 的回答已經明白編碼和解碼各自是什麼了。

那麼利用zip格式壓縮包的文件名編碼,如果未丟失信息,可以批量還原。

利用Bandizip。

在Windows的非Unicode語言為日文的情況下:

將亂碼文件用Bandizip打包,選擇「用Bandizip壓縮」,以便可以設定更多選項:

選擇「壓縮設置」,以便可以確認我們使用Shift-JIS編碼文件名:

在彈出的「壓縮設置」里確定沒有勾選「以Unicode(UTF-8)保存文件名」這個選項:

壓縮(文件較大或較多的話建議選擇「無壓縮僅打包」以節約時間)。

此時我們得到的壓縮文件內的文件名,就是將「縺?縺倥a縺?」以Shift-JIS保存的。

接下來我們以UTF-8還原它。

以Bandizip打開這個壓縮包:

點擊「文字編碼」,並選擇「UTF-8」:

解壓它吧。


&>&>&> "縺?縺倥a縺?".encode("cp932").decode()
"はじめに"


謝邀

軟體用的不對。這種軟體只能識別gb2312。也就是簡體。

正經來講,應該是用日方給的軟體下載才好。

但是,你這樣做是屬於剽竊,對於這種侵犯著作權的軟體,日本還真不敢做。

所以說,不要想那些外門邪道了。

複製粘貼吧,雖然很浪費時間。


這個問題選的話題不太對,吸引不到程序員來回答……

提供一段PowerShell代碼:

Get-Childitem *.htm | ForEach-Object {
$enc8 = [system.Text.Encoding]::UTF8
$encsj = [system.Text.Encoding]::GetEncoding(932)
$filename = $enc8.GetString($encsj.GetBytes($_.name))
rename-item $_ -newname $filename
}

使用方法就是,

1. 在你包含這堆htm的文件夾打開Windows PowerShell:

2. 在打開的PowerShell里粘貼這段代碼(複製之後滑鼠右鍵即可粘貼):

3.回車,大功告成:


謝邀。

在日語環境下載就可以了。

在控制面板中選擇「語言」「更改日期、時間或數字格式」「管理」「非Unicode程序的語言」,選擇日語。然後重新啟動電腦,進行下載。

如果還不行,可以把電腦的所有語言選項都調成日語試一下。

如果你的下載工具在日語環境下打不開,請使用日本的下載工具。

如何看亂碼的特徵:

傛傠偟偔偍遷偄偟傑偡(假設這是一段亂碼)

可以發現,幾乎都是單人旁的,那麼,這顯然是J-shift到GBK的亂碼,可以寫程序,也可以使用「五十音圖」還原。

但是亂碼中有個「遷(這字我隨便編的)」,說明這應該是個漢字,這就不是「五十音圖」能解決的了,亂碼錶也無法人工找到,只能靠計算機了。

還原結果:よろしくお*いします。

可以發現,題主的文件名不是這種漢字連綿單人旁的結構,而是另一種漢字/假名/半形假名的結構,其他答主指出,這很可能是UFT-8到J-shift的亂碼,把碼錶倒過來用就可以了。


謝邀

你這個問題跟日語幾乎沒有什麼關聯呀,這是屬於計算機類的問題,你可以問問那些程序員。我對計算機的操作並不了解幫不了你,不好意思啦。


從新下載


如果你的系統windows的話,下載日語語言包。


推薦閱讀:

Razor 生成的html格式可以調整嗎?
HTML 哪些元素不能有後代元素?編寫時應注意哪些?
如果網頁沒有 CSS 會怎麼樣?
有哪些在伺服器端給網頁截圖的辦法?

TAG:網頁設計 | HTML | 日語 | 亂碼 | HTMLCSS |