我正在开发一个接收对象“Person”的网络服务。“Person”将有一个名为“message”(字符串)的字段。消息可以是客户端放入其中的任何文本。它可以扩展到多行,也可以包含特殊字符。
现在,在服务层中,将“消息”字段声明为字符串是否是一个不错的选择。或者有没有更好的选择。
如果我将字符串类型用于“消息”,用户发送的确切文本是否会在服务层中收到,或者我是否必须添加任何编码器/解码器?
我使用客户端发送的这个“消息”来使用 sendmail 发送电子邮件。
---提前谢谢..
我正在开发一个接收对象“Person”的网络服务。“Person”将有一个名为“message”(字符串)的字段。消息可以是客户端放入其中的任何文本。它可以扩展到多行,也可以包含特殊字符。
现在,在服务层中,将“消息”字段声明为字符串是否是一个不错的选择。或者有没有更好的选择。
如果我将字符串类型用于“消息”,用户发送的确切文本是否会在服务层中收到,或者我是否必须添加任何编码器/解码器?
我使用客户端发送的这个“消息”来使用 sendmail 发送电子邮件。
---提前谢谢..
不是编码器,但是是的,您必须稍微更改文本:传入文本中的换行符会因操作系统/浏览器而异,并根据电子邮件标准RFC 2822第 2.1 节:
消息被分成多行字符。行是由回车和换行这两个字符分隔的一系列字符;即,回车 (CR) 字符(ASCII 值 13)紧跟换行 (LF) 字符(ASCII 值 10)。(回车/换行对在本文档中通常写为“CRLF”。)
在 Java 中,CRLF
表示为"\r\n"
,因此您需要将文本中的换行符替换为 ,最好使用 RegEx 来实现,如下所示:
message = message.replaceAll("\\r?\\n", "\r\n")