支持.ics文件中的多语言字符

时间:2015-10-29 10:08:03

标签: c#

我正在使用c#生成.ics文件。 我可以通过邮件发送日历邀请作为附件。 但邀请函不支持多语言字符。

如何启用对多语言字符的支持?

StringBuilder CalenderInviteString = new StringBuilder();

            CalenderInviteString.AppendLine("BEGIN:VCALENDAR");
            CalenderInviteString.AppendLine("PRODID:-//Invite");
            CalenderInviteString.AppendLine("VERSION:2.0");
            CalenderInviteString.AppendLine(string.Format("X-WR-RELCALID:{0}",invite.Id));
            CalenderInviteString.AppendLine(string.Format("METHOD:{0}",(invite.Method==CalendarMethod.UPDATE)?"REQUEST":invite.Method.ToString()));
            CalenderInviteString.AppendLine("BEGIN:VEVENT");
            CalenderInviteString.AppendLine(string.Format("DTSTART:{0:yyyyMMddTHHmmssZ}", invite.StartDate));
            CalenderInviteString.AppendLine(string.Format("DTSTAMP:{0:yyyyMMddTHHmmssZ}", invite.DateTimeStamp));
            CalenderInviteString.AppendLine(string.Format("DTEND:{0:yyyyMMddTHHmmssZ}", invite.EndDate));
            CalenderInviteString.AppendLine(string.Format("LOCATION: {0}", invite.Location));
            CalenderInviteString.AppendLine(string.Format("UID:{0}", invite.Id));
            CalenderInviteString.AppendLine("SEQUENCE:1");
            CalenderInviteString.AppendLine(string.Format("STATUS:{0}", invite.Status.ToString()));
            CalenderInviteString.AppendLine(string.Format("DESCRIPTION:{0}", invite.Description));
            CalenderInviteString.AppendLine(string.Format("X-ALT-DESC;FMTTYPE=text/html:{0}", invite.Content));
            CalenderInviteString.AppendLine(string.Format("SUMMARY:{0}", invite.Summary));
            CalenderInviteString.AppendLine(string.Format("ORGANIZER:MAILTO:{0}",invite.Organizer));



        CalenderInviteString.AppendLine("BEGIN:VALARM");
        CalenderInviteString.AppendLine("TRIGGER:-PT15M");
        CalenderInviteString.AppendLine("ACTION:DISPLAY");
        CalenderInviteString.AppendLine("DESCRIPTION:Reminder");
        CalenderInviteString.AppendLine("END:VALARM");
        CalenderInviteString.AppendLine("END:VEVENT");
        CalenderInviteString.AppendLine("END:VCALENDAR");

        return CalenderInviteString.ToString();

1 个答案:

答案 0 :(得分:0)

将Content-Type(mime类型)与适当的字符集一起使用。

示例:

text/calendar; charset=gb18030