CKEditor / Ajax 特殊字符编码/解码不起作用
我正在使用 CKEditor,并输入一些带有特殊字符的文本:“Bâtisseurs Passionnés”,注意法语特殊字符。然后,我使用 javascript escape() 获取输入并通过 AJAX/JSON 将其发送到 PHP 服务器脚本。
在 PHP 方面,使用 urldecode() 之前和之后的日志输出如下所示,它似乎转换了
标签部分,但特殊字符仅显示为“?”并按原样存储到数据库中。我应该使用另一个电话吗?或者 urldecode 中不包含特殊字符?
$json = json_decode($data);
error_log("URLDecode: before: " . $data);
error_log("URLDecode: after: " . urldecode($data));
输出看起来像
URLDecode: before: %3Cp%3E%0A%09B%E2tisseurs%20passionn%E9s%3C/p%3E%0A
URLDecode: after: <p>
B?tisseurs passionn?s</p>
I'm using CKEditor, and typing in some text with special characters: "Bâtisseurs passionnés", note french special characters. I then use javascript escape() to get the input and send it via AJAX/JSON to the PHP server script.
On the PHP side of things, the log output looks like the following before and after using urldecode(), it appears to convert the
tag parts but the special characters only show up as '?' and stored as such into the database. Is there another call I should be using? Or are special characters not included for urldecode?
$json = json_decode($data);
error_log("URLDecode: before: " . $data);
error_log("URLDecode: after: " . urldecode($data));
and the output looks like
URLDecode: before: %3Cp%3E%0A%09B%E2tisseurs%20passionn%E9s%3C/p%3E%0A
URLDecode: after: <p>
B?tisseurs passionn?s</p>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
escape 不是 php 的 urldecode 的匹配对。
在 JavaScript 中使用 encodeURIComponent。
MDC:函数
escape isn't a match pair for php's urldecode.
Use encodeURIComponent in javascript.
MDC:functions