utf-8编码的jsp页面中请求中文名的swf文件
kofwr 2010-12-13 04:57:29 提一个怪异的问题:
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却不能被转码,貌似是字符集不符合。
请高手说说原因吧。