Outlook カレンダー イベントを作成しようとしていますが、テキストの一部が Outlook で消えます。
private List<ICalEvent> _events;
public override void ExecuteResult(System.Web.Mvc.ControllerContext context)
{
StringBuilder str = new StringBuilder();
var _with1 = str;
foreach (var _event in _events)
{
_with1.AppendLine("BEGIN:VCALENDAR");
_with1.AppendLine("VERSION:2.0");
_with1.AppendLine("BEGIN:VEVENT");
_with1.AppendLine(string.Format("DTSTART:{0}", _event.start.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z")));
_with1.AppendLine(string.Format("DTEND:{0}", _event.end.ToUniversalTime().ToString("yyyyMMdd\\THHmmss\\Z")));
_with1.AppendLine(string.Format("SUMMARY:{0}", _event.summary));
_with1.AppendLine(string.Format("DESCRIPTION:{0}", _event.description));
_with1.AppendLine(string.Format("LOCATION:{0}", _event.location));
_with1.AppendLine("END:VEVENT");
_with1.AppendLine("END:VCALENDAR");
}
context.HttpContext.Response.ContentType = "text/calendar";
context.HttpContext.Response.AddHeader("Content-disposition", string.Format("attachment; filename={0}", "newFile"));
context.HttpContext.Response.Write(str.ToString());
}
に複数の行があると、問題が発生しdescription
ます。たとえば、 「New\r\nLine」というテキストが含まれている場合、Outlook カレンダーの説明には「New」のみが表示されます。「\r\n」以降の部分が消えます。
私はこれらすべてを試しましたが、同じ結果になりました:
_event.description.Replace("\r\n", "\n\n")
_event.description.Replace("\\", "\\\\")
_event.description.Replace("\r\n", Environment.NewLine)
誰かが同様の問題を抱えていましたか?