Javascript 2016将html发送到服务器

Javascript 2016将html发送到服务器,javascript,html,encoding,Javascript,Html,Encoding,我正在抓取网页数据(想想类似的问题)并将其发送回本地服务器,而不是通过网络。两者将在同一台机器上,但我仍然希望它更安全一点 我目前正在从网页上抓取html,并试图将其编码为URI。问题出在这里。内置函数encodeURI无法正常工作,因为HTML页面中的某些内容已经编码,而有些内容没有编码!就像HTML本身一样。让我举一个例子 此代码: 您收到的邮件需要编码为:%3Ctitle%3E您收到的邮件为%20mMail%3C/title%3E” 但其中一些是预先编码的(在调用encodeURI之前):

我正在抓取网页数据(想想类似的问题)并将其发送回本地服务器,而不是通过网络。两者将在同一台机器上,但我仍然希望它更安全一点

我目前正在从网页上抓取html,并试图将其编码为URI。问题出在这里。内置函数
encodeURI
无法正常工作,因为HTML页面中的某些内容已经编码,而有些内容没有编码!就像HTML本身一样。让我举一个例子

此代码:

您收到的邮件
需要编码为:
%3Ctitle%3E您收到的邮件为%20mMail%3C/title%3E”

但其中一些是预先编码的(在调用
encodeURI
之前):


body bgcolor=“#FFFFFF”background=“../img/1bbbottom.gif”text=“#000000”link=“#2100c5”vlink=“#2100c5”alink=“#bd0031”


有没有简单的方法可以获取一个HTML页面(尽管很难看)并将其可靠地编码到URI中?

您正在寻找
encodeURIComponent()
。对于
encodeURI()
,从来没有一个好的理由(我知道)

一旦您使用了
encodeURIComponent()
,就可以按原样对其进行解码,准确地获取发送的内容


另一方面,我不确定您在哪里进行这种编码,但如果您计划在查询字符串中使用这种编码,请注意有有限的查询字符串限制,通常为4k或64k。(至少有时您可以配置limit服务器端。)

您不能只编码为base64吗?p、 如果使用GET方法达到查询字符串长度限制,则始终可以切换到POST并发送所有数据。@Lukaslies当然,base64是另一种以33%的开销保证二进制兼容性的方法。