posts - 15,comments - 65,trackbacks - 0
                            本文最先發表在本人個人java+flex技術博客http://www.lovestblog.cn,歡迎大家光臨。(轉載的請不要刪除該行,謝謝合作)
              這兩天接了一個網站,比較簡單兩三天就基本搞定了,但是其中碰到最難的就是flex的一個中文問題了,下面我主要想講講三種不同的現象。 
          •     第一種:    Image組件的源地址是中文的,比如resources/數學/高等數學/math.jpg; 
               tomcat中的server.xml中配置端口的那段加上 URIEncoding="utf-8"; 
               直接訪問資源地址如:http://localhost:8080/WebTest/resources/數學/高等數學/math.jpg; 
               這種情況下Image組件不能顯示出來,下面直接訪問的地址能訪問到數據。 
          •    第二種:    Image組件的源地址是GBK的,比如比如resources/數學/高等數學/math.jpg; 
               tomcat中的server.xml中配置端口的那段加上 URIEncoding="GBK"; 
               直接訪問資源地址如:http://localhost:8080/WebTest/resources/數學/高等數學/math.jpg; 
               這種情況下Image組件式能顯示出來的,但是直接訪問的那個地址是不能訪問到數據的。 
          •    第三種:   mage組件的源地址是utf-8的,比如resources/%E6%95%B0%E5%AD%A6/%E9%AB%98%E7%AD%89%E6%95%B0%E5%AD%A6/math.jpg; 
              tomcat中的server.xml中配置端口的那段加上 URIEncoding="utf-8"; 
              直接訪問資源地址如:http://localhost:8080/WebTest/resources/數學/高等數學/math.jpg; 
                這種情況下Image組件式能顯示出來的,直接訪問的那個地址是也能訪問到數據。 

              原因分析: 
                瀏覽器默認的編碼方式是utf-8的,flex中地址默認是采用utf-8的,而tomcat默認的編碼方式是ISO-8859-1的,即我們訪問的地址都是iso-8859-1編碼的,如果不設置tomcat中的編碼方式即為默認的iso-8859-1方式,那么瀏覽器中的請求地址中的中文是不能被解析的,所以請求不到資源,因此,我們通過設置tomcat的編碼方式為utf-8即可以通過瀏覽器訪問到含有中文名的資源。同理默認情況下flex組件也訪問不到帶有中文路徑的資源; 
                如果tomcat設置為utf-8的,我們可以訪問http://localhost:8088/EncodingTest/resource/未命名.jpg類似的地址,但是對于flex中<mx:Image source="resources/體育/足球/1.jpg" />這樣的組件還是顯示不出來(這點我也疑惑,還望高人指點),但是我們設置為<mx:Image source="resources/%E4%BD%93%E8%82%B2/%E8%B6%B3%E7%90%83/1.jpg" />這樣我們就能訪問到了。 
                如果tomcat編碼方式設置為GBK的話,對于flex組件<mx:Image source="resources/體育/足球/1.jpg" />我們是可以訪問到的,但是對于<mx:Image source="resources/%E4%BD%93%E8%82%B2/%E8%B6%B3%E7%90%83/1.jpg" />這樣的我們是訪問不到的,對于瀏覽器中的地址http://localhost:8088/EncodingTest/resource/未命名.jpg,我們是訪問不到的,但是對于我們把未命名進行GBK編碼之后的%CE%B4%C3%FC%C3%FB替換了,即http://localhost:8088/EncodingTest/resource/%CE%B4%C3%FC%C3%FB.jpg就能訪問了。至于如何取得中文的GBK編碼我們可以通過java方法取得,比如String s="未命名.jpg";s=java.net.URLEncoder.encode(s,"GBK");這樣就取得了“未命名.jpg”的GBK編碼了。 

                總結如下: 
                 總結出了一個基本解決中文編碼的方法,即tomcat中設置編碼為utf-8,flex中組件要訪問資源的路徑如果帶有中文那么我們去把中文轉換成utf-8格式的在賦值給組件的source屬性,對于瀏覽器中訪問的地址就可以是帶有中文的訪問地址了。
          posted on 2009-04-30 01:35 你假笨 閱讀(1702) 評論(1)  編輯  收藏

          FeedBack:
          # re: flex中文問題,訪問中文路徑問題[未登錄]
          2009-04-30 23:59 | aaa
          友情幫頂
          <A href="http://www.035sf.cn">冒險島4S網</a>提供版本銷售、架設技術、售后服務、信息反饋“四位一體”的全程服務  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 兰考县| 洪江市| 收藏| 额济纳旗| 教育| 邯郸县| 孟州市| 金昌市| 延庆县| 扎兰屯市| 开平市| 阳东县| 凤翔县| 芦山县| 眉山市| 宾阳县| 蓝山县| 武陟县| 邢台市| 永昌县| 五莲县| 衢州市| 临洮县| 台山市| 左权县| 旬邑县| 常山县| 松潘县| 南涧| 襄樊市| 泽库县| 洞头县| 璧山县| 乐亭县| 偃师市| 西平县| 玛多县| 微博| 丰台区| 深泽县| 岳西县|