因為佈景主題採用timthumb的縮圖機制,所以這篇是特別針對圖片來自於外部縮圖測試的文章之,此外也會針對中文檔名網址做測試。
WordPress 撰寫文章、上資料,一定會遇到上傳檔案,檔案的上傳多數使用者習慣使用「中文檔名」,雖然上傳後網站圖片看似正常,但有一天你會發現,為什麼檔案都備份不下來?為什麼備份下來都亂碼?如果有網站搬家(轉移主機)可能會發生圖片破圖問題,這該怎麼解決?
或許有些人覺得檔案上傳不算什麼,就只是上傳檔案,怎麼可能有問題?通常在不搬家之前,網站不會有問題,而一旦搬家,就會遇到奇奇怪怪的問題了。中文檔案名稱在WordPress內是可以上傳的,但在FTP上可能有編碼相容問題,許多人搬家的時候卻忽略了這點,以至於網站轉移到新虛擬主機空間卻發現一堆破圖。
怎麼會有中文檔名?
一般部落客寫文章、網站經營者上傳資料,其實很少有機會遇到中文檔案名稱,因為相機輸出、手機輸出的圖片名稱全都是英文。那什麼時候會遇到中文檔案名稱?
通常像是Mac使用者的系統預設螢幕截圖功能,他所輸出的檔案名稱即「螢幕快照-2012-02-23-下午1.37.49」這樣的檔案名稱,使用者通常會直接上傳。
另一個可能是使用者去其他地方抓檔案下來,然後自行轉成中文檔名,以便於整理檔案,但這樣的好習慣卻會讓你造成主機圖片的備份困擾。
為什麼不要中文檔名?
大家都知道中文跟英文是不同的語系編碼,在上傳資料時也許我們可以選擇正確的語系編碼讓圖檔正確的顯示出來,但是在備份的過程中則有可能變成中文檔名變成亂碼的問題,使用者在備份的當下並不會注意到亂碼的問題,畢竟上千或上萬張檔案並不會有人逐一檢查是否有亂碼,頂多查是否有備份成功而已,重新上傳到新主機時也是一樣的狀況就一直將錯就錯下去了。
通常會發現到網頁圖檔出不來都不知是猴年馬月的事了,大部分也都是網友告知了才知道有破圖,檢查之下才發現圖檔本來的中文檔名都變成亂碼了,網站因為無法抓到正確的圖片名稱也就造成了破圖的狀況。
簡單說,主要因為編碼的問題很容易讓中文檔案名稱出錯,文章越多就會破圖越多,想要修復也需要花很多時間一篇篇檢查與修正,費時又費力。
中文檔名實際案例
阿腸之前遇到一個客戶,他是自行搬家到其他主機,事後發現有非常多篇舊文章圖片都破圖了,初期以為是檔案備份或上傳不完整,就把自己電腦內的備份檔案重新上傳,但是破掉的圖缺依然沒有任何起死回生的徵兆,後來阿腸幫忙檢查才發現罪魁禍首是因為中文檔名抓下來後變成亂碼造成的,而原先租用的主機也早就到期沒有續約了,以致於所有因為中文檔名變成亂碼造成破圖的文章需要自己一篇篇重新上圖修復。
解決中文檔名傳輸問題
你剛好也遇到中文檔名變成亂碼的狀況該如何解決?如果你搬家前的網站還沒有因虛擬主機到期或者是自行刪除網站,那麼可以將資料重新以正確的編碼抓取,再搬家到新網站就可以解決問題,但是如果像上述的案例,那麼你就只能摸摸鼻子,自己重新上傳圖片了。
編碼調整的部分,可以修改FTP軟體的傳輸規則,將傳輸編碼修改為「UTF-8」就可以順利將中文檔案名稱的部分抓下來,也就可以輕鬆解決搬家後中文檔案失效的問題。如果「UTF-8」不行,則可以嘗試「BIG5」或者是再測試回預設的ANSII編碼,通常這些中文檔名的問題可以迎刃而解。
未來中文檔名的解決方案
如果使用過痞客邦、無名小站等台灣BSP的網站來說,應該都會注意到自己上傳的圖片都會被痞客邦等BSP做重新命名,其實就是在解決這樣中文檔名的狀況,只是WordPress到頭來是外國人開發的軟體,在檔案命名上系統原先並沒有重新命名的機制,但是使用者可以透過修改程式或者找尋相關外掛來解決這樣的問題。
一般阿腸幫客戶客製化的網站都會提供這樣的功能,避免客戶傳輸中檔案名稱造成後續維護上的麻煩,或許這只是一個很小的功能,但是當你遇到問題的時候你就會覺得它是小兵立大功。
總結來說,上面一堆理論如果你有看沒有懂,編碼有看沒有懂,只要謹記:電腦是外國人發明的,所有東西預設都是英文與數字,傳了中文檔案名稱很可能會發生問題,為了避免這樣的問題,檔案請使用「英文、數字、底線、橫槓」做搭配,當然也不要檔名中有空白符號。
無留言