關於網頁中圖片為中文名無法顯示的解決辦法

來源:互聯網
上載者:User

標籤: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 
然後檔案名稱再加上相應的副檔名即可。既可以存入資料庫也可以直接儲存檔案名稱。

關於網頁中圖片為中文名無法顯示的解決辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.