如何批量恢復下載的日文網頁亂碼的文件名?
用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的亂碼,可以寫程序,也可以使用「五十音圖」還原。謝邀
你這個問題跟日語幾乎沒有什麼關聯呀,這是屬於計算機類的問題,你可以問問那些程序員。我對計算機的操作並不了解幫不了你,不好意思啦。
從新下載
如果你的系統windows的話,下載日語語言包。
推薦閱讀:
※Razor 生成的html格式可以調整嗎?
※HTML 哪些元素不能有後代元素?編寫時應注意哪些?
※如果網頁沒有 CSS 會怎麼樣?
※有哪些在伺服器端給網頁截圖的辦法?