我做了一个表格,里面有富文本编辑器。我正在尝试将数据存储到数据库中。
现在我主要有两个问题..
1) 一旦包含“#”的字符串(基本上当我尝试更改字体颜色时)字符,那么它就不会在“#”之后存储字符。而且它也不存储“#”字符。
2) 虽然我已经尝试过....在 javascript 中
html.replace("\"","'");
但它不会将双引号替换为单引号。
最佳答案
我们需要看一些代码。我的感觉是你在某处缺少一些重要的逃避步骤。特别是:
As soon as the string which contents "#"(basically when i try to change the color of the font) character
对我来说,您可能会将字符串粘在一起形成这样的 URL:
var url= '/something.php?content='+html;
当然,如果 html
包含一个 #
符号,您就会遇到问题,因为:
http://www.example.com/something.php?content=<div style="color:#123456">
#
开始一个名为 #123456">
的片段标识符,就像当您将 #section
放在 URL 的末尾以转到 HTML 文件中名为 section
的 anchor 时。片段标识符纯粹是客户端的,不会发送到服务器,服务器会看到:
http://www.example.com/something.php?content=<div style="color:
然而,这远不是上述问题的唯一问题。空格,<
和 =
在 URL 中是无效的,其他像 &
这样的字符也会弄乱参数解析。要将任意字符串编码为查询参数,您必须使用 encodeURIComponent
:
var url= '/something.php?content='+encodeURIComponent(html);
这会将 #
替换为 %35
,对于其他带外字符也是如此。
但是,如果这确实是您正在做的事情,那么在任何情况下您都不应将任何内容存储到数据库以响应 GET 请求,也不应依赖 GET 来传递可能较大的内容。请改用 POST 请求。
关于php - 为什么mysql不存储 "#"字符后的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2736027/