看板 PangSir 關於我們 聯絡資訊
我在助教提供的demo用測資裡面發現一個有中文檔名的檔案: 「雲端學成說明會 005_s.jpg」 我用firefox連的時候firefox會把這串encode成UTF-8,但是 繁體中文版本的windows(只測過XP)會把檔名存成Big-5, 於是如果沒有做特別的處理是找不到檔案的 我有試過用win32api裡頭的MultiByteToWideChar和WideCharToMultiByte來把 編碼轉換成Big-5,在這份測資和會把檔名翻譯成UTF-8的browser下是可行的 但是一來http header沒有資訊告訴我們URL的那串%xx%xx%xx用的到底是什麼 charset,我們無法保證browser一定會把檔名翻譯成UTF-8。二來我們也難以 確定檔案本身的檔名是不是完全是big-5,比如說檔名如果參雜了奇怪的語言 像是日文韓文之類的,或是某些big-5沒有的中文字。我知道可以用檢查字串 是不是合法的utf-8 string來做到某種程度的判斷,但是這寫起來感覺好麻煩 ,似乎有點偏離這次作業的主軸 我想問的是,我們應該要考慮這些情況嗎? 如果要的話,不知道可不可以請同學們分享一下自己的解法XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.168.222 ※ 編輯: jimmycool 來自: 118.169.168.222 (04/02 00:56)