標籤:lan 載入 utf-8 htm cti 一點 轉換 沒有 自己
轉載:http://lofei117.iteye.com/blog/1074182
網頁中很多時候要用到圖片,通過img標籤或者濾鏡來顯示在頁面上。而當檔案名稱為中文名時會遇到圖片無法正確載入,導致無法顯示。
解決辦法如下:
1:改變伺服器的配置,使伺服器支援utf-8來顯示圖片。這個經過測試是有效,但是有一點是伺服器配置修改了以後,再使用request來擷取參數時,中文亂碼的問題。通過System.out.print來列印出來的參數是正確的,但是賦值給String對象後卻不是正確的值,再通過String對象的getBytes方法來轉換以後仍然不正確。所以放棄了這個方法。
參照:
在html頁面中,引用了帶漢字的圖片,形如<img src="/目錄/子目錄/圖片名字.jpg" />,如果沒有在tomcat配置URIEncoding,則無法顯示。修改方法:
在tomcat的server.xml中加入URIEncoding="utf-8" (網頁的編碼是utf-8)
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="utf-8" redirectPort="8443" />
2:我自己想的方法,可能已經有其他人想出來了。就是給中文名用utf-8編碼,出來一個帶有%號的字串,對應相應的檔案名稱。當然這還不夠,因為這個檔案名稱瀏覽器會自動轉義解碼為對應的中文名,圖片還是無法顯示。於是我用了String對象的replace方法,將檔案名稱的%全部替換為-;然後就可以正確顯示圖片了。缺點就是尋找檔案名稱不易於辨認識別。
編碼問題的確是很讓人寒心的,尤其是涉及到中文的地方。
mark了,希望對大家有點協助,也給自己做點筆記,積累自己學到的知識。
String name ="哈哈哈";
String str = java.net.URLEncoder.encode(name, "utf-8");
//轉義後的為%E5%93%88%E5%93%88%E5%93%88
str = str.replace("%", "-");
//替換後為-E5-93-88-E5-93-88-E5-93-88
然後檔案名稱再加上相應的副檔名即可。既可以存入資料庫也可以直接儲存檔案名稱。
關於網頁中圖片為中文名無法顯示的解決辦法