【问题标题】:Redactor and html special characters编辑器和 html 特殊字符
【发布时间】:2015-02-19 21:37:59
【问题描述】:

我刚刚设置了 Redactor 所见即所得。试图让自动保存工作。我有一个空白的文本区域。

<textarea id='editor1'></textarea>

然后我有以下 javascript re: Redactor 文档

$('#editor1').redactor({
    autosave: "save.php",
    autosaveInterval: 2, // seconds
    autosaveCallback: function(name, json)
    {
        console.log(json.message);
        console.log($('#editor1').redactor('code.get'));
    }
});

save.php 文件只是回显数据,控制台记录为 json.message。使用自动保存发送的数据以某种方式编码,而我仅使用 code.get 获得的数据则没有。

这就是使用简单的<p>hello</p> 控制台记录的内容

%253Cp%253E%250A%2509hello%250A%253C%252Fp%253E

我尝试了 php htmlspecialchars_decode 但没有任何变化,显然我遗漏了一些东西,帮助?

** 编辑 **

根据下面的建议,在我的 php 文件中,如果您将传递给 save.php 的数据并使用 urldecode($data) ,则 %253Cp%253E%250A%2509hello%250A%253C%252Fp%253E 将被转换到 %3Cp%3E%0A%09asdf%0A%3C%2Fp%3E

如果您执行 urldecode(urldecode( $data ) ),则输出变为 <p>nthellon</p>

无论你在中间输入什么文字,末尾的字母nt和n都是相同的

标签。

【问题讨论】:

    标签: javascript html redactor


    【解决方案1】:

    你试过了吗:urldecode

    % 编码是 url 编码的。

    【讨论】:

    • 当你 urldecode 上面的长字符串变成 %3Cp%3E%0A%09hello%0A%3C%2Fp%3E
    • 有趣的是,如果你 urldecode 两次它几乎可以正常工作,标签会正确呈现,但字母 nt 位于标签之间存在的任何文本的开头。
    • 我在 javascript 中看到了同样的情况:似乎编辑器正在对已经编码的消息进行编码。
    • 大多数 URL 编码字符串是 % 后跟 2 个字母数字字符,不知何故你的字符串实际上被三重编码...
    • 哇,有趣,你说得对。我对从 Redactor 发送的数据执行了 urldecode() 三次,它有效....不确定这是一个解决方案,但它有效。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多