作者fbysss
关键字:乱码
文件1:encode.jsp
decode
function decode(filename){
location.href="decode.jsp?filename="+filename;//代码行2
}
文件2:decode.jsp
看上去,这样肯定可以达到要求了,但是事实不是这样,javascript并不识别jsp编码后的字符串:
用鼠标移动到链接上方时,可以看到IE状态栏上的确是正确的编码,即”%D6%D0%CE%C4%CE%C4%BC%FE%C3%FB.doc”
然而要注意的是:用鼠标右键点击链接-〉属性看到的URL是javascript:decode(‘.doc’);后果可想而知,转向后输出的是乱码。
弄了半天,转UTF-8也是一样,一个小问题整的很郁闷,最后想到,还得在js这里下手。
把encode.jsp代码行1注释掉,代码行2前面加入一行:filename = encodeURI(filename);
看到一点进展:转向后的url已经很规范了:filename=%E4%B8%AD%E6%96%87%E6%96%87%E4%BB%B6%E5%90%8D.doc,但是结果仍然是乱码。为啥呢?注意观察,前面的编码和后面是不一样的!
然而,javascript的EncodeURI没有提供编码参数,默然就是UTF-8. 好,那么行不行呢?答案是:不行,原因我现在还没找到,找到了会在此补充,如果哪位知道,还望指点。
解决办法:把代码行3替换成
sFileName=new String(sFileName.getBytes(“ISO-8859-1”), “UTF-8”);
现在再看结果,已经是正常的中文了。
补充:Aj服务器托管网ax中,servlet输出中文之后,需要js读取,同样面临编码问题,可以采取如下方式:
在servlet中用URLEncoder编码sText服务器托管网 = URLEncoder.encode(sText,”UTF-8″);
在js中用decodeURI解码xText = decodeURI(xText);
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: java202303java学习笔记第三十五天IO流中unicode字符集2
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net 机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net相关推荐: 详解缓存更新策略及如何选择概述 缓存更新是指在数据发生变化时,保持缓…