后台传给页面JS字符串中带有转义字符'\',比如说:var userName = new Array("who","sdfa\a");
...
这中间需要怎样做才能在页面中把它显示出来呢?即,页面中也能显示成:  sdfa\a
...
document.write('<td>'+userName[1]+'</td>');
我试过先在C语言里一个个转成ASCII码,然后转,但C语言里也无法识别字符串中的'\',所以无法定位。特向各位求教,非常感谢!!

解决方案 »

  1.   

        *  博客园
        * 首页
        * 新随笔
        *
        *
        * 管理< 2008年8月 >
    日 一 二 三 四 五 六
    27 28 29 30 31 1 2
    3 4 5 6 7 8 9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 29 30
    31 1 2 3 4 5 6
    搜索
         *相册    * 我家宝宝好友    * myzerg
        * Wu.Country
        * 金色海洋
        * 子风积分与排名    * 积分 - 61693
        * 排名 - 816最新评论    * 1. re: 发布时,正在使用的用户出错
        * 不错!受教了!
        * --kkun
        * 2. re: 发布时,正在使用的用户出错
        * 分开测试服务器和生产服务器,要修改在测试。
          要用户把要修改的东西make a list
        * --谢小漫
        * 3. re: GetCallbackEventReference对我来说太复杂了
        * 我经常使用这东西,觉得挺好用的。
        * --plumsea
        * 4. re: OPEN OFFICE操作技巧3
        * 同病相怜的兄弟,对于你的问题,我只能回答抱歉。 1.合并后单元格不能插入或删除操作,操作时弹出“无法从合并的区域中删除” 我只能对操作者强调,做的表格尽量简单,能表达目的就好了。另一种想法是自己做一...
        * --yzx99
        * 5. re: OPEN OFFICE操作技巧3
        * 请问博主: 1.OpenOffice中对于某一行合并过单元格后,要删除其中的一列如何操作? 2.如果保存为EXCEL格式,加密功能如何实现。 3.有无跨域合并单元格功能 万分感谢!...
        * --w 
    单引号,双引号,javascript,HTML,转义字符在一个网页中的按钮,写onclick事件的处理代码,不小心写成如下:
    <input value="Test" type="button" onclick="alert(""OK"");" />
    IE提示出错后,再漫不经心地改为:
    <input value="Test" type="button" onclick="alert(\"OK\");" />
    结果还是出错。
    这时,我就想不通了,虽然我知道最直接的解决方法是写成这样:
    <input value="" type="button" onclick="alert('OK');" />
    但为什么javascript中的转义字符\没有效果了呢?后来找到一段正常的代码:
    <input value="Test" type="button" onclick="alert(&quot;OK&quot;);" />
    这时才理解,原来这时,还是归于HTML的管辖范围,所以转义字符应该使用HTML的,而不是javascript的。两个双引号的做法是vbScript的,\"这种做法则是javascript的,而HTML的,则是用&quot;,此外还可以使用:"、'。下面列出各种表达方法:
    <html>
    <body>
    <input value="外双引号内双引号-错误" type="button" onclick="alert("OK");" /><br />
    <input value="外单引号内单引号-错误" type="button" onclick='alert('OK');' /><br />
    <input value="两个双引号-错误" type="button" onclick="alert(""OK"");" /><br />
    <input value="两个单引号-错误" type="button" onclick="alert(''OK'');" /><br />
    <input value="\+双引号-错误" type="button" onclick="alert(\"OK\");" /><br />
    <input value="\+单引号-错误" type="button" onclick="alert(\'OK\');" /><br />
    <input value="外双引号内单引号-OK" type="button" onclick="alert('OK');" /><br />
    <input value="外单引号内双引号-OK" type="button" onclick='alert("OK");' /><br />
    <input value="外部不使用引号-OK" type="button" onclick=alert('OK');alert("OK"); /><br />
    <input value="HTML转义字符"(& # 3 4 ;)-OK" type="button" onclick="alert("OK");" /><br />
    <input value="HTML转义字符'(& # 3 9 ;)-OK" type="button" onclick="alert('OK');" /><br />
    <input value="HTML转义字符"(& # x 2 2 ;)-OK" type="button" onclick="alert('OK');" /><br />
    <input value="HTML转义字符'(& # x 2 7 ;)-OK" type="button" onclick="alert('OK');" /><br />
    <input value="HTML转义字符&quot;(& q u o t ;)-OK" type="button" onclick="alert(&quot;OK&quot;);" /><br />
    <input value="HTML转义字符&apos;(& a p o s ;)-IE错误" type="button" onclick="alert(&apos;OK&apos;);" /><br /><input value="其它\\-错误" type="button" onclick="alert(\\"OK\\");" /><br />
    <input value="其它\& # 3 4 ;-错误" type="button" onclick="alert(\"OK\");" /><br />
    </body>
    </html> 
      

  2.   

    用JS语言处理如下:
    for(var j=0; j<userName[1].length; j++)
    {
    var checkName = userName[i].charAt(j)

    if(checkName == '\') /*此处会造成页面语法错误*/
    {
    checkName = '\\'
    }

    }
    用C语言处理如下:(先把以上字符串处理成 sdfa\\a 然后传给页面直接显示)
    while (*p != '\0')
        {
            if((UINT8)*p == 92) 
            {
                *p = '\\';
            }
            p++;
        }
    即:指针移位的方式来检测,但字符'\'还是被跳过去了。现在也不知道该怎么办了....
      

  3.   

    数据是怎样得到的,比如“sadf\a”,给你个JSP例子
    <%
    String str = "sadf\\a";
    %>
    <script language="javascript">
    var str1 = "<%= str.replaceAll("\\\\", "\\\\\\\\")  %>";
    </script>
    这样得到的就str1就是"sadf\a"
      

  4.   


    一开始就是这样的数据:
    <% 
    String str = "sadf\a"; 
    %> 怎么转换成这样的呢?:
    <% 
    String str = "sadf\\a"; 
    %> 
      

  5.   

    不可能呀,我这里写的是"sadf\\a"其实都是转义的"sadf\a"
    只有转义字符才是一个"\",不是转义的单"\"都是被转义成"\\"了,怎么可能出来就是一个不是转义字符的单"\"号
      

  6.   


    String str = "sadf\a".Replace("\\","\\\\"); 
      

  7.   


    出来的单个 转义字符 '\' 是从命令行配置的,然后在web页面显示,所以就出现以上的情况了。