挪威字符为'?'在ics c#

问题描述 投票:0回答:1

我一直试图在邮件中发送日历事件ic作为附件,但是摘要和说明中显示的是挪威字符,例如'ø'为'?'。

[由于我是ASP.Net MVC中的日历活动的新手,请帮助我。

    System.Text.StringBuilder str = new StringBuilder();
        str.AppendLine("BEGIN:VCALENDAR");
        str.AppendLine("PRODID:-//Schedule a Meeting");
        str.AppendLine("VERSION:2.0");
        str.AppendLine("METHOD:PUBLISH");
        str.AppendLine("BEGIN:VEVENT");
        str.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}",model.Startdate));
        str.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", DateTime.UtcNow));
        str.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", model.EndDate));
        str.AppendLine("LOCATION: " + model.Location);
        str.AppendLine(string.Format("UID:{0}", Guid.NewGuid()));
        str.AppendLine(string.Format("DESCRIPTION:{0}", model.desc));
        str.AppendLine(string.Format("SUMMARY:{0}", model.Name));
        str.AppendLine(string.Format("ORGANIZER:MAILTO:{0}", model.Email));
        str.AppendLine("BEGIN:VALARM");
        str.AppendLine("TRIGGER:-PT15M");
        str.AppendLine("ACTION:DISPLAY");
        str.AppendLine("DESCRIPTION:Reminder");
        str.AppendLine("END:VALARM");
        str.AppendLine("END:VEVENT");
        str.AppendLine("END:VCALENDAR");

        byte[] byteArray = Encoding.ASCII.GetBytes(str.ToString());
        MemoryStream stream = new MemoryStream(byteArray);

        Attachment attach = new Attachment(stream, "Invitation.ics");`
icalendar
1个回答
0
投票

这里的问题是,使用ASCII编码时,您丢失了特殊字符。使用其他一些编码,例如UTF8,这是一种可变的多字节编码,可以覆盖所有字符。

附件链接显示了如何在ics文件中指定使用的编码:https://theeventscalendar.com/support/forums/topic/ical-text-encoding/

© www.soinside.com 2019 - 2024. All rights reserved.