【发布时间】:2018-06-18 16:31:36
【问题描述】:
我必须做什么
我必须创建一个文本文件 (.txt, .doc, ...),其中包含由 .netWebaApi 传递的确切文本(使用表情符号)(并将其附加到电子邮件中)。
情况:
我有一个使用 .net webapi 的项目。我的其中一条路线包括创建一个文本文件并将其附加到电子邮件中,其中一些文本由可能包含表情符号的设备传递。
我不知道如何正确保存表情符号。如果我将表情符号复制粘贴到单词或记事本文件中,它可以工作,但如果我通过我的代码保存它,它不会。我想这是由于格式化,但我尝试了Unicode, UTF-32, UTF-8, ASCII,...
我尝试了许多在 SO 上找到的解决方案,但没有一个对我有用。
例如这个表情符号(从 .net 调试器复制粘贴)--> ????根据使用的编码转换为引号或¶ó。
如何将表情符号作为文本保存到文件中,以便接收者阅读?
这就是我所做的:
//smsText is a string containing emojis
byte[] bytes = Encoding.Unicode.GetBytes(smsText);
Attachment attachment = new Attachment(new MemoryStream(bytes), tokenKey + ".doc");
attachment.ContentType = new ContentType("application/ms-word");
List <Attachment> attachments = new List<Attachment>();
attachments.Add(attachment);
//send email with attachments
请注意,带有调试器的 smsText 包含 ????正确显示。
电子邮件正确到达收件人,带有 .doc 附件,但附件不包含表情符号
【问题讨论】:
-
您是如何生成
.doc文件的? -
@john 我没有将其保存到文件中,我只是使用上面的代码创建一个带有给定文本和
contenttype = application/ms-word的附件 -
那么您是在内存中生成文本文件,而不是 Word 文档?
-
如果您要创建文本文件,您的内容类型应为“text/plain”,文件扩展名为“.txt”。
-
您不能只保存一个文本字符串并称其为 Word 文件。