0

オブジェクト「Person」を受け取るWebサービスに取り組んでいます。「Person」には、「message」(文字列) というフィールドがあります。メッセージは、クライアントが挿入する任意のテキストにすることができます。複数の行に拡張でき、特殊文字も含まれる場合があります。

さて、サービスレイヤーで、「メッセージ」フィールドを文字列として宣言するのは良いオプションですか。または、より良いオプションがあります。

「メッセージ」に文字列型を使用する場合、ユーザーが送信する正確なテキストはサービス層で受信されますか、それともエンコーダー/デコーダーを追加する必要がありますか?

クライアントが送信するこの「メッセージ」を使用して、sendmail を使用してメールを送信します。

---事前に感謝..

4

1 に答える 1

0

エンコーダーではありませんが、テキストを少し変更する必要があります: 受信テキストの改行文字は、オペレーティング システム/ブラウザーによって異なり、電子メール標準のRFC 2822セクション 2.1に従って異なります。

メッセージは文字列に分割されます。行は、改行と改行の 2 文字で区切られた一連の文字です。つまり、キャリッジ リターン (CR) 文字 (ASCII 値 13) の直後にライン フィード (LF) 文字 (ASCII 値 10) が続きます。(キャリッジ リターン/ライン フィードのペアは、通常、このドキュメントでは "CRLF" として記述されます。)

Java では、CRLFは として表される"\r\n"ため、テキスト内の改行をそれに置き換える必要があります。これは、次のように RegEx を使用して行うのが最適です。

message = message.replaceAll("\\r?\\n", "\r\n")
于 2013-01-24T21:04:14.893 に答える