懶唄。
“顯示漢字”只要前臺系統支援就行了;而“檔名包含漢字”需要後臺系統也支援。
舉例來說,你裝個英文版且不支援unicode的老作業系統,然後在上面部署個python寫的網站,那麼這個網站是一定能正常執行的。
因為對作業系統來說,python直譯器就是個程式而已;它解釋執行的是數字還是別的,不歸它管它也管不著。所以,你很容易就可以得到個支援中文的網站。
但,上傳檔案後,這個檔案是要在系統裡儲存的;老系統只支援英文路徑,你搞箇中文,裡面大於127的ascii字元很可能被解釋為控制字元或者非法字元,存進去就再也別想提取出來了。
甚至,駭客還可能有意利用這些“非法字元”,攻破網站的宿主系統……
(比如給你個名叫 ../../../../windows/*** 的檔案[其中****可能指向計劃任務設定或dll或其它要害檔案];你要真敢照這個名字存了,下次開機、或者執行過計劃任務、或執行了其它某個動作,你的伺服器就敞開大門了——當然,現代的網站,預設都會禁止跳到資料目錄的父目錄去,就是怕再吃這個虧)
這種情況也很好破解,只要上傳檔案後統一按一定規則重新命名(比如Ax7123zyc.gif之類,貌似知乎就這麼搞)、然後自己維護個原始檔名/新命名的對應表即可。
這是一種情況;另一種情況是,過濾檔名非法字元的規則是網站設計者不知從哪抄來的,早過時幾百年了……
總而言之,到了現在還不支援漢字的,就一個字,懶。
懶唄。
“顯示漢字”只要前臺系統支援就行了;而“檔名包含漢字”需要後臺系統也支援。
舉例來說,你裝個英文版且不支援unicode的老作業系統,然後在上面部署個python寫的網站,那麼這個網站是一定能正常執行的。
因為對作業系統來說,python直譯器就是個程式而已;它解釋執行的是數字還是別的,不歸它管它也管不著。所以,你很容易就可以得到個支援中文的網站。
但,上傳檔案後,這個檔案是要在系統裡儲存的;老系統只支援英文路徑,你搞箇中文,裡面大於127的ascii字元很可能被解釋為控制字元或者非法字元,存進去就再也別想提取出來了。
甚至,駭客還可能有意利用這些“非法字元”,攻破網站的宿主系統……
(比如給你個名叫 ../../../../windows/*** 的檔案[其中****可能指向計劃任務設定或dll或其它要害檔案];你要真敢照這個名字存了,下次開機、或者執行過計劃任務、或執行了其它某個動作,你的伺服器就敞開大門了——當然,現代的網站,預設都會禁止跳到資料目錄的父目錄去,就是怕再吃這個虧)
這種情況也很好破解,只要上傳檔案後統一按一定規則重新命名(比如Ax7123zyc.gif之類,貌似知乎就這麼搞)、然後自己維護個原始檔名/新命名的對應表即可。
這是一種情況;另一種情況是,過濾檔名非法字元的規則是網站設計者不知從哪抄來的,早過時幾百年了……
總而言之,到了現在還不支援漢字的,就一個字,懶。