<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    天下難事,必作于易;天下大事,必作于細
    如果我有方向,那就是遠方
    posts - 11,comments - 8,trackbacks - 0

    作者fbysss
    msn:jameslastchina@hotmail.com?
    blog:blog.csdn.net/fbysss
    聲明:本文由fbysss原創,轉載請注明出處
    關鍵字:亂碼

    文件1:encode.jsp

    <%@ page language="java" contentType="text/html; charset=GBK"
    ??? pageEncoding="GBK"%>
    <%
    ??? String sFileName = "中文文件名.doc";
    ?? sFileName = java.net.URLEncoder.encode(sFileName);//代碼行1
    %>
    ?<a href="javascript:decode('<%=sFileName%>');">decode</a>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
    <body>
    <script language="javascript">
    function??? decode(filename){
    ?? location.href="decode.jsp?filename="+filename;//代碼行2
    }

    </script>
    </body>
    </html>

    文件2:decode.jsp

    <%@ page language="java" contentType="text/html; charset=gbk"
    ??? pageEncoding="gbk"%>
    <%
    ??? String sFileName = request.getParameter("filename");
    ?sFileName = java.net.URLDecoder.decode(sFileName,"GBK");//代碼行3
    ?????out.println("filename:"+sFileName);
    %>

    ????????看上去,這樣肯定可以達到要求了,但是事實不是這樣,javascript并不識別jsp編碼后的字符串:
    用鼠標移動到鏈接上方時,可以看到IE狀態欄上的確是正確的編碼,即"%D6%D0%CE%C4%CE%C4%BC%FE%C3%FB.doc"
    然而要注意的是:用鼠標右鍵點擊鏈接-〉屬性看到的URL是javascript:decode('?D?????t??.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.? 好,那么?sFileName = java.net.URLDecoder.decode(sFileName,"UTF-8");行不行呢?答案是:不行,原因我現在還沒找到,找到了會在此補充,如果哪位知道,還望指點。
    解決辦法:把代碼行3替換成
    sFileName=?new String(sFileName.getBytes("ISO-8859-1"), "UTF-8");
    現在再看結果,已經是正常的中文了。

    補充:Ajax中,servlet輸出中文之后,需要js讀取,同樣面臨編碼問題,可以采取如下方式:
    在servlet中用URLEncoder編碼sText = URLEncoder.encode(sText,"UTF-8");
    在js中用decodeURI解碼xText = decodeURI(xText);

    posted on 2007-09-04 16:34 flyepp 閱讀(1217) 評論(0)  編輯  收藏 所屬分類: Useful articles

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


    網站導航:
     
    主站蜘蛛池模板: 女人被免费视频网站| 中文文字幕文字幕亚洲色| 国产精品深夜福利免费观看| 久久香蕉国产线看免费| 色婷婷综合缴情综免费观看| 亚洲人成77777在线播放网站不卡| 精品国产亚洲一区二区三区| 国产一区二区视频免费| 毛片免费vip会员在线看| 精品无码无人网站免费视频| 久久久久女教师免费一区| 日韩精品无码免费视频| 精品韩国亚洲av无码不卡区| 国产精品亚洲精品青青青| 亚洲电影在线免费观看| 亚洲综合日韩中文字幕v在线| 久久精品国产精品亚洲艾草网美妙| 日本一道高清不卡免费| 好吊妞998视频免费观看在线| 精品久久久久成人码免费动漫 | 国产精品免费视频播放器| 免费AA片少妇人AA片直播| 在线成人爽a毛片免费软件| 日韩免费的视频在线观看香蕉| 天黑黑影院在线观看视频高清免费| 一级女性全黄生活片免费看| 人妻仑刮八A级毛片免费看| 羞羞漫画在线成人漫画阅读免费| 18禁亚洲深夜福利人口| 色婷婷亚洲一区二区三区| 国产亚洲日韩在线a不卡| 男男gvh肉在线观看免费| 免费精品国自产拍在线播放| 免费精品视频在线| 久久免费99精品国产自在现线 | 亚洲一级特黄大片在线观看| 亚洲日本中文字幕天堂网| 狠狠综合久久综合88亚洲| 国产亚洲精AA在线观看SEE| 久久久久久久亚洲Av无码| 亚洲精品视频专区|