作者jimmycool (北七)
看板PangSir
標題[CN] hw1檔名編碼問題
時間Fri Apr 2 00:56:00 2010
我在助教提供的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)