HTML字符串和编码

时间:2013-10-15 21:47:54

标签: javascript html encoding

我想我在这里追逐我的尾巴并且会感谢有人让我直截了当。在我的Javascript程序中,我需要使用AJAX将HTML字符串POST到我的PHP服务器。 HTML字符串可能包含嵌入的图像数据。

第1部分:简单案例 - HTML字符串只是文本 - 例如 - “Mmiz的问题”

<p>Mmiz&#39;s question</p>

如果我没有做任何编码,那么POST似乎会破坏撇号之后的所有内容,它只是服务器端的“Mmiz”。使用escape()也没有解决问题!我应该怎么做才能安全地将html字符串传输到服务器?

第2部分:如果html中有图像数据,我使用以下64位URL安全编码图像数据:

encodeURIComponent(str).replace(/'/g,"%27").replace(/"/g,"%22");

这是正确的方法吗?

感谢您的指导!

Mmiz

1 个答案:

答案 0 :(得分:0)

我的猜测是您将数据作为GET数据或表单数据发送。在任何一种情况下,&都标记参数的结束和下一个参数的开始。你必须编码这个。此外,对其他字符进行编码也是一个好主意,例如使用encodeURIComponent

那就是说,你可能想要研究另一种方法。例如,我喜欢直接将数据提交到服务器而没有任何复杂情况,因此请求看起来像:

POST /somefile.php HTTP/1.0
Host: example.com
Content-Type: text/plain     -- or some relevant type, like application/json
Content-Length: 13

Hello, World!

然后在服务器端,在这种情况下在PHP中,我可以使用file_get_contents("php://input")来检索数据,没有任何问题。