本帖最后由 go786 于 2009-06-22 18:35:39 编辑

解决方案 »

  1.   

    修改。<script>
    function   enc(s) 

        ret   =   " " 
    for(i   =   0;i <s.length;i++) 

    ret   +=   "&#"   +   s.charCodeAt(i)   +   "" 

    return   ret 

    var x=enc("<%=url%>");
    document.write(x);

    </script>&#107&#21644&#22030&#21704&#21704 这些是对字符(包括中文字符等所有字符)的HTML编码,在HTML中显示,
    比如:
    &#107 = k 
    &#21644 = 和
    &#22030 = 嘎
    &#21704 = 哈
    &#21704 = 哈
      

  2.   

    楼上的朋友效果和我改的那个一样的哦 输出的x值是url没有经过enc处理过的
      

  3.   

    <script> 
    function  enc(s) 

        ret  =  " " 
    for(i  =  0;i <s.length;i++) 

    ret  +=  "&# "  +  s.charCodeAt(i)  +  "" 

    return  ret 

    var x=enc(" <%=url%>"); 
    document.write(x); 
    </script> 
    关键是"&# "那个东西就是传说中的网页转义字符串转义字符串(Escape Sequence),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。比如,要显示小于号(<),就可以写 < 或者 < 。用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。提示:实体名称(Entity)是区分大小写的。备注:同一个符号,可以用"实体名称"和"实体编号"两种方式引用,"实体名称"的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而"实体编号"则没有这种担忧,但它实在不方便记忆。所以如果你不加上那个空格.write出来就会自动转义啦...