提一个怪异的问题:
tomcat做webserver,某个jsp中有显示的swf文件,其中swf文件为中文命名(目前不能改变中文命名方式),在firefox等非ie浏览器下看,中文swf文件正常,但在ie下看,无法请求到中文的swf文件,但是直接url敲入又可访问到。
代码如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%
String swfFile1 = "/UserFiles/2/Flash/测试.swf"; %>
   <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="summerPalace_normalInput" width="400" height="300"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="<%=swfFile1%>" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="<%=swfFile1%>" quality="high" bgcolor="#ffffff"
width="400" height="300" name="summerPalace_normalInput" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object><br>如上述代码,直接url敲入http://UserFiles/2/Flash/测试.swf就可以请求中文的swf,但页面就不行,本页是utf-8编码的页面。
后来用new String(swfFile.getBytes("UTF-8"), "GBK").trim();这种方式在IE使用的object标签内生成路径,这个 测试.swf是可以的,但用 技术.swf却不能被转码,貌似是字符集不符合。
请高手说说原因吧。

解决方案 »

  1.   


    firefox等非ie浏览器下看,中文swf文件正常,但在ie下看,无法请求到中文的swf文件
    这个不只JSP,你写个html,它也一样不能播放。
    所有资源文件的命名,都要使用英文,就像有些软件不能安装在中文文件夹下。
      

  2.   

    与代码无关,IE下传输数据无论是否设置UTF-8,最后统一编码LATIN1,所以要在后台转换new String(fileName.getByte("UTF-8"),"ISO-8859-1"),確保所有頁面代碼服務器設置均為UTF-8后考慮
      

  3.   

    String swfFile1 = "/UserFiles/2/Flash/" + java.net.URLEncoder.encode("测试.swf", "utf8");server.xml 配置一下
    <Connector URIEncoding="utf-8" port="8084" protocol="HTTP/1.1"
      

  4.   

    现在的问题不是转码的问题,是flash控件的src参数不支持中文字符,只支持国际标准的特殊字符,如果控件本身不支持,要么用英文路径,要么自已开发flash显示控件。
      

  5.   

    不是SRC不支持中文,是IE瀏覽器的編碼問題,不然你怎麼解釋FF下正常,如果SRC不支持中文,大不了做3次轉碼