发送在邮件中编码的特殊字符是正常的吗


is it normal to send special characters encoded in post

我和某人讨论过,但没有找到合适的解决方案,所以我想知道你们是怎么想的:

我有一个html表单,另一个叫他"Aron"的人有一个.net系统。我的html表单有一个名为description的输入文本字段。Aron的.net系统捕获了我的描述Post,然后将这些数据更改为XML。

但是如果像&则他将得到一个解析错误。

现在阿伦告诉我,我需要张贴&数据作为CCD_ 1而不是作为原始&。

你们怎么看?

对我来说,这听起来更像是一个服务器端问题。如果我是你,我会创建一个对象,将其序列化为JSON,发送到这个.NET应用程序,并让.NET开发人员使用它做任何他需要的事情。我已经根据我的体系结构和语言发送了适当的数据

这样做会更加恰当和合理。想象一下这种情况——你不再与Aron合作,而是与Mark合作,Mark获取你的POST数据并将其保存为纯文本。他会问"你为什么要把HTML编码的数据发送给我?我不需要这个"。你绝对不会告诉他"只要把它解码回来",也绝对不想每次更换合作伙伴时都更改代码。如果你同时与他们两个合作,或者同时提供10项服务,该怎么办?

作为服务的使用者,您不应该为如何实现此服务而烦恼。此外,您现在可能知道它是如何实现的,并且它不应该影响您的代码。

我认为尊敬的Aron先生应该使用一个适当的库来处理诸如此类的问题,如果使用得当,它应该几乎是自动的。

如果不能做到这一点,他可以在转换为XML之前使用System.Web.HttpUtility.HtmlEncode()

可以在客户端完成,在数据发送之前使用javascript篡改数据。。。但在我看来,这是一种糟糕的做法,应该由服务器来处理。

另一种选择是在PHP中使用htmlspecialchar()对html实体进行编码,然后使用CURL将数据发布到他的".net系统"。