【问题标题】:Pass a hex parameter to jQuery function and display as hex--not ASCII将十六进制参数传递给 jQuery 函数并显示为十六进制——而不是 ASCII
【发布时间】:2015-09-18 14:27:14
【问题描述】:

我有一个带有 hex 参数的 jQuery 函数。传递的 hex 参数如下所示:

\x73\x70\x65\x63\x74\x61\x74\x6f\x72\x20

当使用 HTML 时,我可以像上面显示的那样显示它。将它传递给 jQuery 函数后,我尝试像这样显示它:

$('#divid').text("This should be hex: '" + HEXparam + "' That should have been hex.'");

但是,它不显示 HEX,而是显示 ASCII/英文翻译(在上述情况下,显示单词“spectator”)。有什么办法可以预防吗?

【问题讨论】:

    标签: javascript jquery escaping


    【解决方案1】:

    在调用$('#divid').text()之前,您需要转义字符串中的斜杠:

    HEXparam = HEXparam.replace('\\', '\\\\');
    

    注意上面代码中斜线的两倍,这是因为第一个\转义了后面的\,导致它们中的两个(\\)的组合被解释为文字“\” .

    【讨论】:

    • 不幸的是,在传递参数之后这样做是不够的。但是,在生成参数时,我按照您在 PHP 端所说的做了,并且 ti 起作用了。它看起来相当复杂。 $spectateHex = '\\\\\\\\x10\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x01\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00\\\\\\\\x00'; 谢谢!
    猜你喜欢
    • 2017-08-06
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-02
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多